mirror of
https://github.com/element-hq/synapse.git
synced 2026-09-24 06:54:42 +00:00
Bumps [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain) from e97e2d8cc328f1b50210efc529dca0028893a2d9 to 6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772"><code>6c977a6</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/rust-toolchain/issues/182">#182</a> from dtolnay/name</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/f3510ffd6ce03d3e6f96856b0b93d5dc6c2e683f"><code>f3510ff</code></a> Render better step names</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/2c7215f132e9ebf062739d9130488b56d53c060c"><code>2c7215f</code></a> Add 1.97.1 patch release</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/fa04a1451ff1842e2626ccb99004d0195b455a88"><code>fa04a14</code></a> Add 1.96.1 patch release</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/67ef31d5b988238dd797d409d6f9574278e20537"><code>67ef31d</code></a> Update actions/checkout@v6 -> v7</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9"><code>3c5f7ea</code></a> Add 1.94.1 patch release</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/efa25f7f19611383d5b0ccf2d1c8914531636bf9"><code>efa25f7</code></a> Add 1.93.1 patch release</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/f7ccc83f9ed1e5b9c81d8a67d7ad1a747e22a561"><code>f7ccc83</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/rust-toolchain/issues/177">#177</a> from dtolnay/permitcopyrename</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/1c0547fbe5b79d7fc4a011e87ef4ac71cf485093"><code>1c0547f</code></a> Permit cross-device copy</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/0b1efabc08b657293548b77fb76cc02d26091c7e"><code>0b1efab</code></a> Update actions/checkout@v5 -> v6</li> <li>Additional commits viewable in <a href="https://github.com/dtolnay/rust-toolchain/compare/e97e2d8cc328f1b50210efc529dca0028893a2d9...6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772">compare view</a></li> </ul> </details> <br /> <details> <summary>Most Recent Ignore Conditions Applied to This Pull Request</summary> | Dependency Name | Ignore Conditions | | --- | --- | | dtolnay/rust-toolchain | [> 1.66.0] | </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
182 lines
6.7 KiB
YAML
182 lines
6.7 KiB
YAML
name: Twisted Trunk
|
|
|
|
on:
|
|
schedule:
|
|
- cron: 0 8 * * *
|
|
|
|
workflow_dispatch:
|
|
# NB: inputs are only present when this workflow is dispatched manually.
|
|
# (The default below is the default field value in the form to trigger
|
|
# a manual dispatch). Otherwise the inputs will evaluate to null.
|
|
inputs:
|
|
twisted_ref:
|
|
description: Commit, branch or tag to checkout from upstream Twisted.
|
|
required: false
|
|
default: "trunk"
|
|
type: string
|
|
|
|
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.
|
|
if: github.repository == 'element-hq/synapse'
|
|
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
|
|
|
- uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
|
|
with:
|
|
python-version: "3.x"
|
|
extras: "all"
|
|
poetry-version: "2.4.1"
|
|
- run: |
|
|
poetry remove twisted
|
|
poetry add --extras tls git+https://github.com/twisted/twisted.git#${{ inputs.twisted_ref || 'trunk' }}
|
|
poetry install --no-interaction --extras "all test"
|
|
- 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
|
|
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- run: sudo apt-get -qq install xmlsec1
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
|
|
|
- uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
|
|
with:
|
|
python-version: "3.x"
|
|
extras: "all test"
|
|
poetry-version: "2.4.1"
|
|
- run: |
|
|
poetry remove twisted
|
|
poetry add --extras tls git+https://github.com/twisted/twisted.git#trunk
|
|
poetry install --no-interaction --extras "all test"
|
|
- run: poetry run trial --jobs 2 tests
|
|
- 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:
|
|
# We're using bookworm because that's what Debian oldstable is at the time of writing.
|
|
# This job is a canary to warn us about unreleased twisted changes that would cause problems for us if
|
|
# they were to be released immediately. For simplicity's sake (and to save CI runners) we use the oldest
|
|
# version, assuming that any incompatibilities on newer versions would also be present on the oldest.
|
|
image: matrixdotorg/sytest-synapse:bookworm
|
|
volumes:
|
|
- ${{ github.workspace }}:/src
|
|
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
|
|
- name: Install Rust
|
|
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
|
|
with:
|
|
toolchain: ${{ env.RUST_VERSION }}
|
|
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
|
|
|
- name: Patch dependencies
|
|
# Note: The poetry commands want to create a virtualenv in /src/.venv/,
|
|
# but the sytest-synapse container expects it to be in /venv/.
|
|
# We symlink it before running poetry so that poetry actually
|
|
# ends up installing to `/venv`.
|
|
run: |
|
|
ln -s -T /venv /src/.venv
|
|
poetry remove twisted
|
|
poetry add --extras tls git+https://github.com/twisted/twisted.git#trunk
|
|
poetry install --no-interaction --extras "all test"
|
|
working-directory: /src
|
|
- name: Run SyTest
|
|
run: /bootstrap.sh synapse
|
|
working-directory: /src
|
|
env:
|
|
# Use offline mode to avoid reinstalling the pinned version of
|
|
# twisted.
|
|
OFFLINE: 1
|
|
- name: Summarise results.tap
|
|
if: ${{ always() }}
|
|
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
|
|
- name: Upload SyTest logs
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
if: ${{ always() }}
|
|
with:
|
|
name: Sytest Logs - ${{ job.status }} - (${{ join(matrix.*, ', ') }})
|
|
path: |
|
|
/logs/results.tap
|
|
/logs/**/*.log*
|
|
|
|
complement:
|
|
uses: ./.github/workflows/complement_tests.yml
|
|
needs: check_repo
|
|
if: "!failure() && !cancelled() && needs.check_repo.outputs.should_run_workflow == 'true'"
|
|
with:
|
|
use_twisted_trunk: true
|
|
|
|
# open an issue if the build fails, so we know about it.
|
|
open-issue:
|
|
if: failure() && needs.check_repo.outputs.should_run_workflow == 'true'
|
|
needs:
|
|
- mypy
|
|
- trial
|
|
- sytest
|
|
- complement
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
- uses: JasonEtco/create-an-issue@1b14a70e4d8dc185e5cc76d3bec9eab20257b2c5 # v2.9.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
update_existing: true
|
|
filename: .ci/twisted_trunk_build_failed_issue_template.md
|