From d71674670dadd514860d5229d2e72a283e55a335 Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Fri, 28 Jan 2022 12:07:02 +0000 Subject: [PATCH 1/3] Allow customising the version of the Synapse image used in the Dockerfile --- docker/Dockerfile-workers | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile-workers b/docker/Dockerfile-workers index 46f2e17382db..53f59e93625f 100644 --- a/docker/Dockerfile-workers +++ b/docker/Dockerfile-workers @@ -1,5 +1,8 @@ +ARG base_version=latest + # Inherit from the official Synapse docker image -FROM matrixdotorg/synapse + +FROM matrixdotorg/synapse:$base_version # Install deps RUN apt-get update From ed5d900b9eabf762a636dff20f521aad25973cbe Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Fri, 28 Jan 2022 12:07:29 +0000 Subject: [PATCH 2/3] Add a build_worker_test stage to the docker build pipeline --- .github/workflows/docker.yml | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 124b17458f45..b0582749dc4c 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 From e940c625a88a5d825f7a11638497559bb469d795 Mon Sep 17 00:00:00 2001 From: "Olivier Wilkinson (reivilibre)" Date: Fri, 28 Jan 2022 12:30:52 +0000 Subject: [PATCH 3/3] Newsfile Signed-off-by: Olivier Wilkinson (reivilibre) --- changelog.d/11852.misc | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/11852.misc diff --git a/changelog.d/11852.misc b/changelog.d/11852.misc new file mode 100644 index 000000000000..11abe3614feb --- /dev/null +++ b/changelog.d/11852.misc @@ -0,0 +1 @@ +Build Docker images for using worker-mode Synapse in automated test tools. \ No newline at end of file