Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Build Docker images for using worker-mode Synapse in automated test tools. #11852

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the "(for worker-testing-only image)" is a bit weird here. Why only this step?

if: github.event_name != 'pull_request'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it looks like the push is not conditional on this, so why is the login?

(maybe we can make the entire job conditional instead of the individial steps?)

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could use a yaml alias thingy to avoid the duplication

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

anchor and merge are the formal names, I think.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apparently GHA doesn't support YAML anchors. I was surprised but this is what the net says.

- 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,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.oO (we should probably use https://github.com/peter-evans/dockerhub-description to upload/sync the image descriptions on ghcr/dockerhub)

# 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
1 change: 1 addition & 0 deletions changelog.d/11852.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Build Docker images for using worker-mode Synapse in automated test tools.
5 changes: 4 additions & 1 deletion docker/Dockerfile-workers
Original file line number Diff line number Diff line change
@@ -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
Expand Down