diff options
author | Olivier Wilkinson (reivilibre) <oliverw@matrix.org> | 2022-01-28 12:07:29 +0000 |
---|---|---|
committer | Olivier Wilkinson (reivilibre) <oliverw@matrix.org> | 2022-01-28 12:36:56 +0000 |
commit | ed5d900b9eabf762a636dff20f521aad25973cbe (patch) | |
tree | 9db778f229e38d5830f250f571b04e2dbfed913f | |
parent | Allow customising the version of the Synapse image used in the Dockerfile (diff) | |
download | synapse-ed5d900b9eabf762a636dff20f521aad25973cbe.tar.xz |
Add a build_worker_test stage to the docker build pipeline
-rw-r--r-- | .github/workflows/docker.yml | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 124b17458f..b0582749dc 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -63,3 +63,69 @@ jobs: tags: "matrixdotorg/synapse:${{ steps.set-tag.outputs.tag }}" file: "docker/Dockerfile" platforms: linux/amd64,linux/arm64 + + build_workers_test: + runs-on: ubuntu-latest + + # The worker test image depends on the base image, so we must build the base + # first. + needs: build + + permissions: + packages: write + contents: read + + steps: + - name: Set up QEMU + id: qemu + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + + - name: Inspect builder + run: docker buildx inspect + + - name: Login to GitHub Container Registry (for worker-testing-only image) + if: github.event_name != 'pull_request' + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + # This must match EXACTLY the one in the `build` pipeline. + - name: Calculate docker image tag + id: set-tag + run: | + case "${GITHUB_REF}" in + refs/heads/develop) + tag=develop + ;; + refs/heads/master|refs/heads/main) + tag=latest + ;; + refs/tags/*) + tag=${GITHUB_REF#refs/tags/} + ;; + *) + tag=${GITHUB_SHA} + ;; + esac + echo "::set-output name=tag::$tag" + + # This image is solely intended to be used for automated test tools, + # such as mx-tester. + - name: Build and push worker-testing-only image for all platforms + uses: docker/build-push-action@v2 + with: + push: true + build-args: | + "base_version=${{ steps.set-tag.outputs.tag }}" + labels: "gitsha1=${{ github.sha }}" + tags: "ghcr.io/matrix-org/synapse-workers-testing-only:${{ steps.set-tag.outputs.tag }}" + file: "docker/Dockerfile-workers" + platforms: linux/amd64,linux/arm64 |