mirror of
https://github.com/element-hq/synapse.git
synced 2026-04-03 18:45:59 +00:00
Bumps the minor-and-patches group with 2 updates: [tailscale/github-action](https://github.com/tailscale/github-action) and [Swatinem/rust-cache](https://github.com/swatinem/rust-cache). Updates `tailscale/github-action` from 4.1.1 to 4.1.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tailscale/github-action/releases">tailscale/github-action's releases</a>.</em></p> <blockquote> <h2>v4.1.2</h2> <h2>What's Changed</h2> <ul> <li>.github/workflows: fix check to skip integration test for PRs from forks by <a href="https://github.com/mpminardi"><code>@mpminardi</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/260">tailscale/github-action#260</a></li> <li>fix: Windows MSI download on self-hosted runners by <a href="https://github.com/doringeman"><code>@doringeman</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/259">tailscale/github-action#259</a></li> <li>Bump actions/checkout from 6.0.1 to 6.0.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/265">tailscale/github-action#265</a></li> <li>Bump actions/setup-node from 6.1.0 to 6.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/262">tailscale/github-action#262</a></li> <li><code>fix: add missing parentheses to core.isDebug()</code> by <a href="https://github.com/git-mracek"><code>@git-mracek</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/268">tailscale/github-action#268</a></li> <li>.github/workflows: run integration test if event is a push by <a href="https://github.com/mpminardi"><code>@mpminardi</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/270">tailscale/github-action#270</a></li> <li>store tailscale.tgz and tailscaled.pid in XDG cache/runtime by <a href="https://github.com/fbrv"><code>@fbrv</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/273">tailscale/github-action#273</a></li> <li>action,dist,src: bump default version to 1.94.2 by <a href="https://github.com/mpminardi"><code>@mpminardi</code></a> in <a href="https://redirect.github.com/tailscale/github-action/pull/274">tailscale/github-action#274</a></li> <li>Bump actions/setup-node from 6.2.0 to 6.3.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/269">tailscale/github-action#269</a></li> <li>Bump <code>@actions/core</code> from 2.0.1 to 2.0.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/258">tailscale/github-action#258</a></li> <li>Bump <code>@actions/github</code> from 6.0.1 to 7.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/257">tailscale/github-action#257</a></li> <li>Bump <code>@actions/tool-cache</code> from 2.0.2 to 3.0.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/256">tailscale/github-action#256</a></li> <li>Bump <code>@actions/cache</code> from 5.0.1 to 5.0.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/tailscale/github-action/pull/255">tailscale/github-action#255</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/doringeman"><code>@doringeman</code></a> made their first contribution in <a href="https://redirect.github.com/tailscale/github-action/pull/259">tailscale/github-action#259</a></li> <li><a href="https://github.com/git-mracek"><code>@git-mracek</code></a> made their first contribution in <a href="https://redirect.github.com/tailscale/github-action/pull/268">tailscale/github-action#268</a></li> <li><a href="https://github.com/fbrv"><code>@fbrv</code></a> made their first contribution in <a href="https://redirect.github.com/tailscale/github-action/pull/273">tailscale/github-action#273</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tailscale/github-action/compare/v4.1.1...v4.1.2">https://github.com/tailscale/github-action/compare/v4.1.1...v4.1.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="306e68a486"><code>306e68a</code></a> Bump <code>@actions/cache</code> from 5.0.1 to 5.0.2</li> <li><a href="989d9be101"><code>989d9be</code></a> Bump <code>@actions/tool-cache</code> from 2.0.2 to 3.0.0</li> <li><a href="69584d71ae"><code>69584d7</code></a> Bump <code>@actions/github</code> from 6.0.1 to 7.0.0</li> <li><a href="cda17d523f"><code>cda17d5</code></a> Bump <code>@actions/core</code> from 2.0.1 to 2.0.2</li> <li><a href="81231eb3b2"><code>81231eb</code></a> Bump actions/setup-node from 6.2.0 to 6.3.0</li> <li><a href="48c6d0317a"><code>48c6d03</code></a> action,dist,src: bump default version to 1.94.2</li> <li><a href="cfed5b8999"><code>cfed5b8</code></a> store tailscale.tgz and tailscaled.pid in XDG cache/runtime dirs instead of t...</li> <li><a href="31d93e60e2"><code>31d93e6</code></a> .github/workflows: run integration test if event is a push</li> <li><a href="564fe381c8"><code>564fe38</code></a> chore: run make build to resolve linter error</li> <li><a href="127daded26"><code>127dade</code></a> <code>fix: add missing parentheses to core.isDebug()</code></li> <li>Additional commits viewable in <a href="53acf82332...306e68a486">compare view</a></li> </ul> </details> <br /> Updates `Swatinem/rust-cache` from 2.8.2 to 2.9.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's releases</a>.</em></p> <blockquote> <h2>v2.9.1</h2> <p>Fix regression in hash calculation</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.9.0...v2.9.1">https://github.com/Swatinem/rust-cache/compare/v2.9.0...v2.9.1</a></p> <h2>v2.9.0</h2> <h2>What's Changed</h2> <ul> <li>Add support for running rust-cache commands from within a Nix shell by <a href="https://github.com/marc0246"><code>@marc0246</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/290">Swatinem/rust-cache#290</a></li> <li>Bump taiki-e/install-action from 2.62.57 to 2.62.60 in the actions group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/291">Swatinem/rust-cache#291</a></li> <li>Bump the actions group across 1 directory with 5 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/296">Swatinem/rust-cache#296</a></li> <li>Bump the prd-major group with 3 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/294">Swatinem/rust-cache#294</a></li> <li>Bump <code>@types/node</code> from 24.10.1 to 25.0.2 in the dev-major group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/295">Swatinem/rust-cache#295</a></li> <li>Consider all installed toolchains in cache key by <a href="https://github.com/tamird"><code>@tamird</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/293">Swatinem/rust-cache#293</a></li> <li>Compare case-insenitively for full cache key match by <a href="https://github.com/kbriggs"><code>@kbriggs</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/303">Swatinem/rust-cache#303</a></li> <li>Migrate to <code>node24</code> runner by <a href="https://github.com/rhysd"><code>@rhysd</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/314">Swatinem/rust-cache#314</a></li> <li>Bump the actions group across 1 directory with 7 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/312">Swatinem/rust-cache#312</a></li> <li>Bump the prd-minor group across 1 directory with 2 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/307">Swatinem/rust-cache#307</a></li> <li>Bump <code>@types/node</code> from 25.0.2 to 25.2.2 in the dev-minor group by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/309">Swatinem/rust-cache#309</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/marc0246"><code>@marc0246</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/290">Swatinem/rust-cache#290</a></li> <li><a href="https://github.com/tamird"><code>@tamird</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/293">Swatinem/rust-cache#293</a></li> <li><a href="https://github.com/kbriggs"><code>@kbriggs</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/303">Swatinem/rust-cache#303</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.8.2...v2.9.0">https://github.com/Swatinem/rust-cache/compare/v2.8.2...v2.9.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md">Swatinem/rust-cache's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2>2.9.1</h2> <ul> <li>Fix regression in hash calculation</li> </ul> <h2>2.9.0</h2> <ul> <li>Update to <code>node24</code></li> <li>Support running from within a <code>nix</code> shell</li> <li>Consider all installed toolchains for cache key</li> <li>Use case-insensitive comparison to determine exact cache hit</li> </ul> <h2>2.8.2</h2> <ul> <li>Don't overwrite env for cargo-metadata call</li> </ul> <h2>2.8.1</h2> <ul> <li>Set empty <code>CARGO_ENCODED_RUSTFLAGS</code> when retrieving metadata</li> <li>Various dependency updates</li> </ul> <h2>2.8.0</h2> <ul> <li>Add support for <code>warpbuild</code> cache provider</li> <li>Add new <code>cache-workspace-crates</code> feature</li> </ul> <h2>2.7.8</h2> <ul> <li>Include CPU arch in the cache key</li> </ul> <h2>2.7.7</h2> <ul> <li>Also cache <code>cargo install</code> metadata</li> </ul> <h2>2.7.6</h2> <ul> <li>Allow opting out of caching $CARGO_HOME/bin</li> <li>Add runner OS in cache key</li> <li>Adds an option to do lookup-only of the cache</li> </ul> <h2>2.7.5</h2> <ul> <li>Support Cargo.lock format cargo-lock v4</li> <li>Only run macOsWorkaround() on macOS</li> </ul> <h2>2.7.3</h2> <ul> <li>Work around upstream problem that causes cache saving to hang for minutes.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="c19371144d"><code>c193711</code></a> 2.9.1</li> <li><a href="781e8d91ab"><code>781e8d9</code></a> try reverting pipeline change</li> <li><a href="3d1fa4654a"><code>3d1fa46</code></a> add changelog</li> <li><a href="c676846f29"><code>c676846</code></a> 2.9.0</li> <li><a href="bf71d02c11"><code>bf71d02</code></a> bump dependencies and rebuild</li> <li><a href="8a02ed5e29"><code>8a02ed5</code></a> Bump <code>@types/node</code> from 25.0.2 to 25.2.2 in the dev-minor group (<a href="https://redirect.github.com/swatinem/rust-cache/issues/309">#309</a>)</li> <li><a href="390157d487"><code>390157d</code></a> Bump the prd-minor group across 1 directory with 2 updates (<a href="https://redirect.github.com/swatinem/rust-cache/issues/307">#307</a>)</li> <li><a href="68500c182e"><code>68500c1</code></a> Bump the actions group across 1 directory with 7 updates (<a href="https://redirect.github.com/swatinem/rust-cache/issues/312">#312</a>)</li> <li><a href="1a8384176d"><code>1a83841</code></a> Migrate to <code>node24</code> runner (<a href="https://redirect.github.com/swatinem/rust-cache/issues/314">#314</a>)</li> <li><a href="11da8522bc"><code>11da852</code></a> Compare case-insenitively for full cache key match (<a href="https://redirect.github.com/swatinem/rust-cache/issues/303">#303</a>)</li> <li>Additional commits viewable in <a href="779680da71...c19371144d">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
284 lines
11 KiB
YAML
284 lines
11 KiB
YAML
# People who are freshly `pip install`ing from PyPI will pull in the latest versions of
|
|
# dependencies which match the broad requirements. Since most CI runs are against
|
|
# the locked poetry environment, run specifically against the latest dependencies to
|
|
# know if there's an upcoming breaking change.
|
|
#
|
|
# As an overview this workflow:
|
|
# - checks out develop,
|
|
# - installs from source, pulling in the dependencies like a fresh `pip install` would, and
|
|
# - runs mypy and test suites in that checkout.
|
|
#
|
|
# Based on the twisted trunk CI job.
|
|
|
|
name: Latest dependencies
|
|
|
|
on:
|
|
schedule:
|
|
- cron: 0 7 * * *
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
RUST_VERSION: 1.87.0
|
|
|
|
jobs:
|
|
check_repo:
|
|
# Prevent this workflow from running on any fork of Synapse other than element-hq/synapse, as it is
|
|
# only useful to the Synapse core team.
|
|
# All other workflow steps depend on this one, thus if 'should_run_workflow' is not 'true', the rest
|
|
# of the workflow will be skipped as well.
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
should_run_workflow: ${{ steps.check_condition.outputs.should_run_workflow }}
|
|
steps:
|
|
- id: check_condition
|
|
run: echo "should_run_workflow=${{ github.repository == 'element-hq/synapse' }}" >> "$GITHUB_OUTPUT"
|
|
|
|
mypy:
|
|
needs: check_repo
|
|
if: needs.check_repo.outputs.should_run_workflow == 'true'
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
|
|
# The dev dependencies aren't exposed in the wheel metadata (at least with current
|
|
# poetry-core versions), so we install with poetry.
|
|
- uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
|
|
with:
|
|
python-version: "3.x"
|
|
poetry-version: "2.2.1"
|
|
extras: "all"
|
|
# Dump installed versions for debugging.
|
|
- run: poetry run pip list > before.txt
|
|
# Upgrade all runtime dependencies only. This is intended to mimic a fresh
|
|
# `pip install matrix-synapse[all]` as closely as possible.
|
|
- run: poetry update --without dev
|
|
- run: poetry run pip list > after.txt && (diff -u before.txt after.txt || true)
|
|
- name: Remove unhelpful options from mypy config
|
|
run: sed -e '/warn_unused_ignores = True/d' -e '/warn_redundant_casts = True/d' -i mypy.ini
|
|
- run: poetry run mypy
|
|
trial:
|
|
needs: check_repo
|
|
if: needs.check_repo.outputs.should_run_workflow == 'true'
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- database: "sqlite"
|
|
- database: "postgres"
|
|
postgres-version: "14"
|
|
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
|
|
- run: sudo apt-get -qq install xmlsec1
|
|
- name: Set up PostgreSQL ${{ matrix.postgres-version }}
|
|
if: ${{ matrix.postgres-version }}
|
|
run: |
|
|
docker run -d -p 5432:5432 \
|
|
-e POSTGRES_PASSWORD=postgres \
|
|
-e POSTGRES_INITDB_ARGS="--lc-collate C --lc-ctype C --encoding UTF8" \
|
|
postgres:${{ matrix.postgres-version }}
|
|
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
|
with:
|
|
python-version: "3.x"
|
|
- run: pip install .[all,test]
|
|
- name: Await PostgreSQL
|
|
if: ${{ matrix.postgres-version }}
|
|
timeout-minutes: 2
|
|
run: until pg_isready -h localhost; do sleep 1; done
|
|
|
|
# We nuke the local copy, as we've installed synapse into the virtualenv
|
|
# (rather than use an editable install, which we no longer support). If we
|
|
# don't do this then python can't find the native lib.
|
|
- run: rm -rf synapse/
|
|
|
|
- run: python -m twisted.trial --jobs=2 tests
|
|
env:
|
|
SYNAPSE_POSTGRES: ${{ matrix.database == 'postgres' || '' }}
|
|
SYNAPSE_POSTGRES_HOST: localhost
|
|
SYNAPSE_POSTGRES_USER: postgres
|
|
SYNAPSE_POSTGRES_PASSWORD: postgres
|
|
- name: Dump logs
|
|
# Logs are most useful when the command fails, always include them.
|
|
if: ${{ always() }}
|
|
# Note: Dumps to workflow logs instead of using actions/upload-artifact
|
|
# This keeps logs colocated with failing jobs
|
|
# It also ignores find's exit code; this is a best effort affair
|
|
run: >-
|
|
find _trial_temp -name '*.log'
|
|
-exec echo "::group::{}" \;
|
|
-exec cat {} \;
|
|
-exec echo "::endgroup::" \;
|
|
|| true
|
|
|
|
sytest:
|
|
needs: check_repo
|
|
if: needs.check_repo.outputs.should_run_workflow == 'true'
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: matrixdotorg/sytest-synapse:testing
|
|
volumes:
|
|
- ${{ github.workspace }}:/src
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- sytest-tag: bookworm
|
|
|
|
- sytest-tag: bookworm
|
|
postgres: postgres
|
|
workers: workers
|
|
redis: redis
|
|
env:
|
|
POSTGRES: ${{ matrix.postgres && 1}}
|
|
WORKERS: ${{ matrix.workers && 1 }}
|
|
REDIS: ${{ matrix.redis && 1 }}
|
|
BLACKLIST: ${{ matrix.workers && 'synapse-blacklist-with-workers' }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
|
|
|
|
- name: Ensure sytest runs `pip install`
|
|
# Delete the lockfile so sytest will `pip install` rather than `poetry install`
|
|
run: rm /src/poetry.lock
|
|
working-directory: /src
|
|
- name: Prepare test blacklist
|
|
run: cat sytest-blacklist .ci/worker-blacklist > synapse-blacklist-with-workers
|
|
- name: Run SyTest
|
|
run: /bootstrap.sh synapse
|
|
working-directory: /src
|
|
- name: Summarise results.tap
|
|
if: ${{ always() }}
|
|
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
|
|
- name: Upload SyTest logs
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
if: ${{ always() }}
|
|
with:
|
|
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.*, ', ') }})
|
|
path: |
|
|
/logs/results.tap
|
|
/logs/**/*.log*
|
|
|
|
complement:
|
|
needs: check_repo
|
|
if: "!failure() && !cancelled() && needs.check_repo.outputs.should_run_workflow == 'true'"
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- arrangement: monolith
|
|
database: SQLite
|
|
|
|
- arrangement: monolith
|
|
database: Postgres
|
|
|
|
- arrangement: workers
|
|
database: Postgres
|
|
|
|
steps:
|
|
- name: Check out synapse codebase
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
path: synapse
|
|
|
|
- name: Prepare Complement's Prerequisites
|
|
run: synapse/.ci/scripts/setup_complement_prerequisites.sh
|
|
|
|
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
|
|
with:
|
|
cache-dependency-path: complement/go.sum
|
|
go-version-file: complement/go.mod
|
|
|
|
- name: Run Complement Tests
|
|
id: run_complement_tests
|
|
# -p=1: We're using `-p 1` to force the test packages to run serially as GHA boxes
|
|
# are underpowered and don't like running tons of Synapse instances at once.
|
|
# -json: Output JSON format so that gotestfmt can parse it.
|
|
#
|
|
# tee /tmp/gotest-complement.log: We tee the output to a file so that we can re-process it
|
|
# later on for better formatting with gotestfmt. But we still want the command
|
|
# to output to the terminal as it runs so we can see what's happening in
|
|
# real-time.
|
|
run: |
|
|
set -o pipefail
|
|
COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh -p 1 -json 2>&1 | tee /tmp/gotest-complement.log
|
|
shell: bash
|
|
env:
|
|
POSTGRES: ${{ (matrix.database == 'Postgres') && 1 || '' }}
|
|
WORKERS: ${{ (matrix.arrangement == 'workers') && 1 || '' }}
|
|
TEST_ONLY_IGNORE_POETRY_LOCKFILE: 1
|
|
|
|
- name: Formatted Complement test logs
|
|
# Always run this step if we attempted to run the Complement tests.
|
|
if: always() && steps.run_complement_tests.outcome != 'skipped'
|
|
run: cat /tmp/gotest-complement.log | gotestfmt -hide "successful-downloads,empty-packages"
|
|
|
|
- name: Run in-repo Complement Tests
|
|
id: run_in_repo_complement_tests
|
|
# -p=1: We're using `-p 1` to force the test packages to run serially as GHA boxes
|
|
# are underpowered and don't like running tons of Synapse instances at once.
|
|
# -json: Output JSON format so that gotestfmt can parse it.
|
|
#
|
|
# tee /tmp/gotest-in-repo-complement.log: We tee the output to a file so that we can re-process it
|
|
# later on for better formatting with gotestfmt. But we still want the command
|
|
# to output to the terminal as it runs so we can see what's happening in
|
|
# real-time.
|
|
run: |
|
|
set -o pipefail
|
|
COMPLEMENT_DIR=`pwd`/complement synapse/scripts-dev/complement.sh --in-repo -p 1 -json 2>&1 | tee /tmp/gotest-in-repo-complement.log
|
|
shell: bash
|
|
env:
|
|
POSTGRES: ${{ (matrix.database == 'Postgres') && 1 || '' }}
|
|
WORKERS: ${{ (matrix.arrangement == 'workers') && 1 || '' }}
|
|
TEST_ONLY_IGNORE_POETRY_LOCKFILE: 1
|
|
|
|
- name: Formatted in-repo Complement test logs
|
|
# Always run this step if we attempted to run the Complement tests.
|
|
if: always() && steps.run_in_repo_complement_tests.outcome != 'skipped'
|
|
run: cat /tmp/gotest-in-repo-complement.log | gotestfmt -hide "successful-downloads,empty-packages"
|
|
|
|
# Open an issue if the build fails, so we know about it.
|
|
# Only do this if we're not experimenting with this action in a PR.
|
|
open-issue:
|
|
if: "failure() && github.event_name != 'push' && github.event_name != 'pull_request' && needs.check_repo.outputs.should_run_workflow == 'true'"
|
|
needs:
|
|
# TODO: should mypy be included here? It feels more brittle than the others.
|
|
- mypy
|
|
- trial
|
|
- sytest
|
|
- complement
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
- uses: JasonEtco/create-an-issue@1b14a70e4d8dc185e5cc76d3bec9eab20257b2c5 # v2.9.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
update_existing: true
|
|
filename: .ci/latest_deps_build_failed_issue_template.md
|