mirror of
https://github.com/element-hq/synapse.git
synced 2026-11-04 17:47:28 +00:00
Bumps the all-github-actions group with 3 updates: [dtolnay/rust-toolchain](https://github.com/dtolnay/rust-toolchain), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [actions/download-artifact](https://github.com/actions/download-artifact). Updates `dtolnay/rust-toolchain` from 02cb101ec7c40f2c49e1d9714d64511d8e1b74de to 683b588c487a69d01f6c6ddf40f036ff682cc2c8 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/683b588c487a69d01f6c6ddf40f036ff682cc2c8"><code>683b588</code></a> Add 1.99.1 patch release</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/e2a55d2ffb04f378e9626c28d38b36d230d1e12f"><code>e2a55d2</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/rust-toolchain/issues/187">#187</a> from dtolnay/pwn</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/6af9a09a9f985be78d729e2c9b2440bdb0314675"><code>6af9a09</code></a> Unify flags[@] and downgrade[@]</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/83d06109b7912fe94032e68e59feb6b9e3070e34"><code>83d0610</code></a> Safely handle action inputs</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/7e38f4b43b4db5c8dd498af069a4f6196df1d067"><code>7e38f4b</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/rust-toolchain/issues/186">#186</a> from WaterWhisperer/feat/retry-install</li> <li><a href="https://github.com/dtolnay/rust-toolchain/commit/7645b072e70aa7a5ee7bb3e38735e66b822d8321"><code>7645b07</code></a> Retry release-server checksum failures</li> <li>See full diff in <a href="https://github.com/dtolnay/rust-toolchain/compare/02cb101ec7c40f2c49e1d9714d64511d8e1b74de...683b588c487a69d01f6c6ddf40f036ff682cc2c8">compare view</a></li> </ul> </details> <br /> Updates `actions/upload-artifact` from 7.0.1 to 7.0.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p> <blockquote> <h2>v7.0.2</h2> <h2>What's Changed</h2> <ul> <li>Improves artifact download retries when the service returns HTTP 429 (rate limiting), including honoring valid Retry-After headers.</li> <li>Updates <code>@actions/artifact</code> to v6.3.1.</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/tunc-d"><code>@tunc-d</code></a> made their first contribution in <a href="https://redirect.github.com/actions/upload-artifact/pull/821">actions/upload-artifact#821</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2">https://github.com/actions/upload-artifact/compare/v7.0.1...v7.0.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/upload-artifact/commit/cf430e030ddbb5b0abf93d22962f4752f3646cd9"><code>cf430e0</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/822">#822</a> from actions/tunc-d-prepare-upload-v7-0-2</li> <li><a href="https://github.com/actions/upload-artifact/commit/c2acdedd35a8824a1552c7137f8c18288c3ea469"><code>c2acded</code></a> chore: prepare v7.0.2 release</li> <li><a href="https://github.com/actions/upload-artifact/commit/4687c1bbaa0a58abb517d90b4bbade6754c80c1a"><code>4687c1b</code></a> Merge pull request <a href="https://redirect.github.com/actions/upload-artifact/issues/821">#821</a> from actions/tunc-d-upload-artifact-package-bump</li> <li><a href="https://github.com/actions/upload-artifact/commit/8cbe1bebdb858105d8fdd88f81404d4de4595719"><code>8cbe1be</code></a> Bump <code>@actions/artifact</code> to 6.3.1</li> <li>See full diff in <a href="https://github.com/actions/upload-artifact/compare/043fb46d1a93c77aae656e7c1c64a875d1fc6a0a...cf430e030ddbb5b0abf93d22962f4752f3646cd9">compare view</a></li> </ul> </details> <br /> Updates `actions/download-artifact` from 8.0.1 to 8.0.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/download-artifact/releases">actions/download-artifact's releases</a>.</em></p> <blockquote> <h2>v8.0.2</h2> <h2>What's Changed</h2> <ul> <li>Update the readme by <a href="https://github.com/danwkennedy"><code>@danwkennedy</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/473">actions/download-artifact#473</a></li> <li>Improves artifact download retries when the service returns HTTP 429 (rate limiting), including honoring valid Retry-After headers.</li> <li>Update <code>@actions/artifact</code> to 6.3.1 by <a href="https://github.com/tunc-d"><code>@tunc-d</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/492">actions/download-artifact#492</a></li> <li>Prepare download-artifact v8.0.2 by <a href="https://github.com/tunc-d"><code>@tunc-d</code></a> in <a href="https://redirect.github.com/actions/download-artifact/pull/493">actions/download-artifact#493</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/tunc-d"><code>@tunc-d</code></a> made their first contribution in <a href="https://redirect.github.com/actions/download-artifact/pull/492">actions/download-artifact#492</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/download-artifact/compare/v8.0.1...v8.0.2">https://github.com/actions/download-artifact/compare/v8.0.1...v8.0.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/download-artifact/commit/9000827ccba6bdab643e8b6fd33ac0654aef8333"><code>9000827</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/493">#493</a> from actions/tunc-d-prepare-download-v8-0-2</li> <li><a href="https://github.com/actions/download-artifact/commit/e455989ae00f5bdd4054f05d3e972c6bf8a62dc5"><code>e455989</code></a> Prepare download-artifact v8.0.2</li> <li><a href="https://github.com/actions/download-artifact/commit/a00b90c4a2f01d73a8c89552caabca6ea3b43137"><code>a00b90c</code></a> Merge pull request <a href="https://redirect.github.com/actions/download-artifact/issues/492">#492</a> from actions/tunc-d-download-artifact-package-bump</li> <li><a href="https://github.com/actions/download-artifact/commit/29bb7ce6af5345aeab5bb4774ce7249ee3ccc27f"><code>29bb7ce</code></a> Update <code>@actions/artifact</code> to 6.3.1</li> <li><a href="https://github.com/actions/download-artifact/commit/484a0b528fb4d7bd804637ccb632e47a0e638317"><code>484a0b5</code></a> Update the readme (<a href="https://redirect.github.com/actions/download-artifact/issues/473">#473</a>)</li> <li>See full diff in <a href="https://github.com/actions/download-artifact/compare/3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c...9000827ccba6bdab643e8b6fd33ac0654aef8333">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> 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>
129 lines
4.9 KiB
YAML
129 lines
4.9 KiB
YAML
name: Schema Diff # If this is changed, need to update `schema_diff_comment.yml` as well
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- synapse/storage/schema/*/delta/**
|
|
- synapse/storage/schema/*/full_schemas/**
|
|
- .github/workflows/schema_diff.yml
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
# Posts a GitHub PR comment that shows what the effective change to the schema is.
|
|
# Provides an excuse to run the `make_full_schema.sh` script in CI (so we keep it working)
|
|
# and can act as a review aid for schema changes, letting you easily see the diff of the
|
|
# end result, even when background updates or complex schema deltas are present.
|
|
show-schema-diff:
|
|
name: Show schema diff
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- name: Start postgres with a faked clock
|
|
background: true
|
|
id: postgres
|
|
# Use faketime here for schema deltas that are wall-clock sensitive under Postgres
|
|
# For SQLite, faketime is used when invoking `make_full_schema.sh` within the script
|
|
run: |
|
|
# Build a docker image with faketime
|
|
mkdir /tmp/postgres-faketime
|
|
cat > /tmp/postgres-faketime/Dockerfile <<'EOF'
|
|
FROM postgres:14-alpine
|
|
RUN apk add --no-cache libfaketime
|
|
|
|
# It seems like it could be harmful to fake the monotonic timer
|
|
# as it might prevent deadlock detection, etc.
|
|
# But not sure, just doing out of precaution.
|
|
ENV FAKETIME_DONT_FAKE_MONOTONIC=1
|
|
ENTRYPOINT ["faketime", "-f", "2001-05-25 12:42:42", "docker-entrypoint.sh"]
|
|
CMD ["postgres"]
|
|
EOF
|
|
docker build -t localhost/postgres-faketime /tmp/postgres-faketime
|
|
|
|
# Run it in the background
|
|
docker run -d --name postgres -p 5432:5432 \
|
|
-e POSTGRES_PASSWORD=postgres \
|
|
-e POSTGRES_INITDB_ARGS="--lc-collate C --lc-ctype C --encoding UTF8" \
|
|
--health-cmd pg_isready --health-interval 10s \
|
|
--health-timeout 5s --health-retries 5 \
|
|
localhost/postgres-faketime
|
|
|
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install PostgreSQL client and faketime
|
|
run: sudo apt-get -qq install postgresql-client faketime
|
|
|
|
- uses: matrix-org/setup-python-poetry@5bbf6603c5c930615ec8a29f1b5d7d258d905aa4 # v2.0.0
|
|
with:
|
|
poetry-version: "2.4.1"
|
|
extras: "postgres"
|
|
python-version: "3.x"
|
|
|
|
- name: Wait for Postgres to be up
|
|
run: |
|
|
until [ "$(docker inspect -f '{{.State.Health.Status}}' postgres)" = healthy ]; do sleep 2; done
|
|
|
|
- name: Generate schema diff
|
|
id: schema_diff
|
|
env:
|
|
PGHOST: localhost
|
|
PGUSER: postgres
|
|
PGPASSWORD: postgres
|
|
run: |
|
|
poetry run python .ci/scripts/schema_diff.py \
|
|
--base origin/develop \
|
|
> "${{ runner.temp }}/schema_diff.md"
|
|
|
|
- name: Stop postgres
|
|
cancel: postgres
|
|
|
|
# If the generation step failed, write an error message so the sticky
|
|
# comment step still has a file to read.
|
|
- name: Ensure output file exists on failure
|
|
if: always() && steps.schema_diff.outcome == 'failure'
|
|
run: |
|
|
echo "⚠️ Schema diff generation failed. See job logs for details." \
|
|
> "${{ runner.temp }}/schema_diff.md"
|
|
|
|
# Post a comment.
|
|
#
|
|
# For same-repo PRs, we can do this directly and we are done.
|
|
- name: Post sticky PR comment
|
|
uses: marocchino/sticky-pull-request-comment@28ad303d6acb4ccfc50f20c0044188e7e294b8c4 # v3
|
|
# Only run for same-repo PRs
|
|
if: always() && github.event.pull_request.head.repo.full_name == github.repository
|
|
with:
|
|
header: schema-diff
|
|
path: ${{ runner.temp }}/schema_diff.md
|
|
|
|
# For PRs from forks, we only have a read-only `GITHUB_TOKEN` here and need to work around
|
|
# by triggering a `workflow_run` onto the main repo.
|
|
#
|
|
# We upload an artifact and the `schema_diff_comment.yml` workflow will be triggered
|
|
# on the main repo by this workflow exiting.
|
|
- name: Save PR number for forked PRs
|
|
# Only run for fork PRs
|
|
if: always() && github.event.pull_request.head.repo.full_name != github.repository
|
|
run: echo "${{ github.event.pull_request.number }}" > "${{ runner.temp }}/pr_number"
|
|
|
|
- name: Upload schema diff artifact for forked PRs
|
|
# Only run for fork PRs
|
|
if: always() && github.event.pull_request.head.repo.full_name != github.repository
|
|
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
with:
|
|
name: schema-diff
|
|
path: |
|
|
${{ runner.temp }}/schema_diff.md
|
|
${{ runner.temp }}/pr_number
|
|
retention-days: 1
|