1 files changed, 67 insertions, 0 deletions
diff --git a/.github/workflows/twisted_trunk.yml b/.github/workflows/twisted_trunk.yml
index 5f0671f350..12267405be 100644
--- a/.github/workflows/twisted_trunk.yml
+++ b/.github/workflows/twisted_trunk.yml
@@ -96,6 +96,72 @@ jobs:
/logs/results.tap
/logs/**/*.log*
+ complement:
+ if: "${{ !failure() && !cancelled() }}"
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - arrangement: monolith
+ database: SQLite
+
+ - arrangement: monolith
+ database: Postgres
+
+ - arrangement: workers
+ database: Postgres
+
+ steps:
+ # 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.
+ # See https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path
+ - name: "Set Go Version"
+ run: |
+ # Add Go 1.17 to the PATH: see https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md#environment-variables-2
+ echo "$GOROOT_1_17_X64/bin" >> $GITHUB_PATH
+ # Add the Go path to the PATH: We need this so we can call gotestfmt
+ echo "~/go/bin" >> $GITHUB_PATH
+
+ - name: "Install Complement Dependencies"
+ run: |
+ sudo apt-get update && sudo apt-get install -y libolm3 libolm-dev
+ go get -v github.com/haveyoudebuggedit/gotestfmt/v2/cmd/gotestfmt@latest
+
+ - name: Run actions/checkout@v2 for synapse
+ uses: actions/checkout@v2
+ with:
+ path: synapse
+
+ # This step is specific to the 'Twisted trunk' test run:
+ - name: Patch dependencies
+ run: |
+ set -x
+ DEBIAN_FRONTEND=noninteractive sudo apt-get install -yqq python3 pipx
+ pipx install poetry==1.1.12
+
+ poetry remove -n twisted
+ poetry add -n --extras tls git+https://github.com/twisted/twisted.git#trunk
+ poetry lock --no-update
+ # NOT IN 1.1.12 poetry lock --check
+ working-directory: synapse
+
+ - name: "Install custom gotestfmt template"
+ run: |
+ mkdir .gotestfmt/github -p
+ cp synapse/.ci/complement_package.gotpl .gotestfmt/github/package.gotpl
+
+ # Attempt to check out the same branch of Complement as the PR. If it
+ # doesn't exist, fallback to HEAD.
+ - name: Checkout complement
+ run: synapse/.ci/scripts/checkout_complement.sh
+
+ - run: |
+ set -o pipefail
+ TEST_ONLY_SKIP_DEP_HASH_VERIFICATION=1 POSTGRES=${{ (matrix.database == 'Postgres') && 1 || '' }} WORKERS=${{ (matrix.arrangement == 'workers') && 1 || '' }} COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -json 2>&1 | gotestfmt
+ shell: bash
+ name: Run Complement Tests
+
# open an issue if the build fails, so we know about it.
open-issue:
if: failure()
@@ -103,6 +169,7 @@ jobs:
- mypy
- trial
- sytest
+ - complement
runs-on: ubuntu-latest
|