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

Commit 0938f32

Browse files
kegsayrichvdh
andauthored
CI: run Complement on the VM, not inside Docker (#11811)
* CI: run Complement on the VM, not inside Docker This requires matrix-org/complement#289 We now run Complement on the VM instead of inside a Docker container. This is to allow Complement to bind to any high-numbered port when it starts up its own federation servers. We want to do this to allow for more concurrency when running complement tests. Previously, Complement only ever bound to `:8448` when running its own federation server. This prevented multiple federation tests running at the same time as they would fight each other on the port. This did however allow Complement to run in Docker, as the host could just port forward `:8448` to allow homeserver containers to communicate to Complement. Now that we are using random ports however, we cannot use Docker to run Complement. This ends up being a good thing because: - Running Complement tests locally is closer to how they run in CI. - Allows the `CI` env var to be removed in Complement. - Slightly speeds up runs as we don't need to pull down the Complement image prior to running tests. This assumes GHA caches actions sensibly. * Changelog * Full stop * Update .github/workflows/tests.yml Co-authored-by: Richard van der Hoff <[email protected]> * Review comments * Update .github/workflows/tests.yml Co-authored-by: Richard van der Hoff <[email protected]> Co-authored-by: Richard van der Hoff <[email protected]>
1 parent 1d5f7b2 commit 0938f32

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

.github/workflows/tests.yml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -323,17 +323,22 @@ jobs:
323323
if: ${{ !failure() && !cancelled() }}
324324
needs: linting-done
325325
runs-on: ubuntu-latest
326-
container:
327-
# https://github.com/matrix-org/complement/blob/master/dockerfiles/ComplementCIBuildkite.Dockerfile
328-
image: matrixdotorg/complement:latest
329-
env:
330-
CI: true
331-
ports:
332-
- 8448:8448
333-
volumes:
334-
- /var/run/docker.sock:/var/run/docker.sock
335326

336327
steps:
328+
# The path is set via a file given by $GITHUB_PATH. We need both Go 1.17 and GOPATH on the path to run Complement.
329+
# See https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path
330+
- name: "Set Go Version"
331+
run: |
332+
# Add Go 1.17 to the PATH: see https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#environment-variables-2
333+
echo "$GOROOT_1_17_X64/bin" >> $GITHUB_PATH
334+
# Add the Go path to the PATH: We need this so we can call gotestfmt
335+
echo "~/go/bin" >> $GITHUB_PATH
336+
337+
- name: "Install Complement Dependencies"
338+
run: |
339+
sudo apt-get update && sudo apt-get install -y libolm3 libolm-dev
340+
go get -v github.com/haveyoudebuggedit/gotestfmt/v2/cmd/gotestfmt@latest
341+
337342
- name: Run actions/checkout@v2 for synapse
338343
uses: actions/checkout@v2
339344
with:
@@ -376,8 +381,11 @@ jobs:
376381
working-directory: complement/dockerfiles
377382

378383
# Run Complement
379-
- run: set -o pipefail && go test -v -json -tags synapse_blacklist,msc2403 ./tests/... 2>&1 | gotestfmt
384+
- run: |
385+
set -o pipefail
386+
go test -v -json -tags synapse_blacklist,msc2403 ./tests/... 2>&1 | gotestfmt
380387
shell: bash
388+
name: Run Complement Tests
381389
env:
382390
COMPLEMENT_BASE_IMAGE: complement-synapse:latest
383391
working-directory: complement

changelog.d/11811.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Run Complement on the Github Actions VM and not inside a Docker container.

0 commit comments

Comments
 (0)