diff options
author | 2020-11-24 00:30:22 +0100 | |
---|---|---|
committer | 2020-11-24 00:30:22 +0100 | |
commit | ad84a56bf14f4c491d43f67abb6895c13dfb02e5 (patch) | |
tree | 52d3f88cb388a0e03d28ca111fcf614049d184f6 /.github/workflows/build.yaml | |
parent | Change seasonalbot to sir-lancebot in test data (diff) |
Restructure Build & Deploy sequence in CI
I've restructured the build & deploy sequence in our GitHub Actions CI
workflow:
- There's now a separate workflow to deploy to our cluster
- The Build workflow has an additional `if` check to ensure we're only
starting the build & deploy sequences for pushes to master
- We now checkout the python-discord/kubernetes repo to fetch the
deployment.yaml file located in there
Diffstat (limited to '.github/workflows/build.yaml')
-rw-r--r-- | .github/workflows/build.yaml | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..514c42e2 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,56 @@ +name: Build + +on: + workflow_run: + workflows: ["Lint & Test"] + branches: + - master + types: + - completed + +jobs: + build: + name: Build Docker Image + if: github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' + runs-on: ubuntu-latest + + steps: + # Create a commit SHA-based tag for the container repositories + - name: Create SHA Container Tag + id: sha_tag + run: | + tag=$(cut -c 1-7 <<< $GITHUB_SHA) + echo "::set-output name=tag::$tag" + + - name: Checkout code + uses: actions/checkout@v2 + + # The current version (v2) of Docker's build-push action uses + # buildx, which comes with BuildKit features that help us speed + # up our builds using additional cache features. Buildx also + # has a lot of other features that are not as relevant to us. + # + # See https://github.com/docker/build-push-action + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to Github Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ secrets.GHCR_USER }} + password: ${{ secrets.GHCR_TOKEN }} + + # Build the container, including an inline cache manifest to + # allow us to use the registry as a cache source. + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + push: true + cache-from: type=registry,ref=ghcr.io/python-discord/site:latest + cache-to: type=inline + tags: | + ghcr.io/python-discord/site:latest + ghcr.io/python-discord/site:${{ steps.sha_tag.outputs.tag }} |