dendrite/.github/workflows/schedules.yaml
dependabot[bot] 7cea2d8eef
Bump cypress-io/github-action from 6.7.10 to 6.10.0 (#3591)
Bumps
[cypress-io/github-action](https://github.com/cypress-io/github-action)
from 6.7.10 to 6.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cypress-io/github-action/releases">cypress-io/github-action's
releases</a>.</em></p>
<blockquote>
<h2>v6.10.0</h2>
<h1><a
href="https://github.com/cypress-io/github-action/compare/v6.9.2...v6.10.0">6.10.0</a>
(2025-06-02)</h1>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> remove node.js 23 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1479">#1479</a>)
(<a
href="615dcf6529">615dcf6</a>)</li>
</ul>
<h2>v6.9.2</h2>
<h2><a
href="https://github.com/cypress-io/github-action/compare/v6.9.1...v6.9.2">6.9.2</a>
(2025-05-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>ci:</strong> update semantic-version to 24.2.3 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1465">#1465</a>)
(<a
href="be1bab96b3">be1bab9</a>)</li>
</ul>
<h2>v6.9.1</h2>
<h2><a
href="https://github.com/cypress-io/github-action/compare/v6.9.0...v6.9.1">6.9.1</a>
(2025-05-16)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update undici transitive dependency (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1463">#1463</a>)
(<a
href="a04b1ce84e">a04b1ce</a>)</li>
</ul>
<h2>v6.9.0</h2>
<h1><a
href="https://github.com/cypress-io/github-action/compare/v6.8.0...v6.9.0">6.9.0</a>
(2025-05-01)</h1>
<h3>Features</h3>
<ul>
<li>validate other parameters against command parameter when used (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1445">#1445</a>)
(<a
href="0ee1130f05">0ee1130</a>)</li>
</ul>
<h2>v6.8.0</h2>
<h1><a
href="https://github.com/cypress-io/github-action/compare/v6.7.16...v6.8.0">6.8.0</a>
(2025-04-30)</h1>
<h3>Features</h3>
<ul>
<li><strong>deps:</strong> remove node.js 18 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1446">#1446</a>)
(<a
href="6d4f8f5960">6d4f8f5</a>)</li>
</ul>
<h2>v6.7.16</h2>
<h2><a
href="https://github.com/cypress-io/github-action/compare/v6.7.15...v6.7.16">6.7.16</a>
(2025-03-10)</h2>
<h3>Bug Fixes</h3>
<ul>
<li>pass baseUrl into Octokit constructor (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1395">#1395</a>)
(<a
href="108b8684ae">108b868</a>)</li>
</ul>
<h2>v6.7.15</h2>
<h2><a
href="https://github.com/cypress-io/github-action/compare/v6.7.14...v6.7.15">6.7.15</a>
(2025-03-07)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cypress-io/github-action/blob/master/CHANGELOG.md">cypress-io/github-action's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<p>This document gives an overview of changes to the Cypress GitHub
JavaScript Action <a
href="https://github.com/cypress-io/github-action">cypress-io/github-action</a>.</p>
<p>See <a
href="https://github.com/cypress-io/github-action/releases">Releases</a>
for full details of changes.</p>
<table>
<thead>
<tr>
<th>Version</th>
<th>Changes</th>
</tr>
</thead>
<tbody>
<tr>
<td>v6.10.0</td>
<td>Examples remove Node.js 23. End of support for Node.js 23.</td>
</tr>
<tr>
<td>v6.9.0</td>
<td>Add parameter validation for <code>command</code></td>
</tr>
<tr>
<td>v6.8.0</td>
<td>Examples remove Node.js 18. End of support for Node.js 18.</td>
</tr>
<tr>
<td>v6.7.10</td>
<td>Examples updated to Cypress 14</td>
</tr>
<tr>
<td>v6.7.9</td>
<td>Migrate to <code>@​actions/cache</code><a
href="https://github.com/4"><code>@​4</code></a>.0.0 for continued
access to GitHub Actions caching services</td>
</tr>
<tr>
<td>v6.7.0</td>
<td>Examples remove Node.js 21. End of support for Node.js 21.</td>
</tr>
<tr>
<td>v6.6.0</td>
<td>Add parameter <code>summary-title</code></td>
</tr>
<tr>
<td>v6.5.0</td>
<td>Examples remove Node.js 16. End of support for Node.js 16.</td>
</tr>
<tr>
<td>v6.4.0</td>
<td>Action adds PR number and URL if available when recording</td>
</tr>
<tr>
<td>v6.3.0</td>
<td>v6 is recommended action version</td>
</tr>
<tr>
<td>v6.2.0</td>
<td>Examples updated to Cypress 13</td>
</tr>
<tr>
<td>v6.1.0</td>
<td>Examples for Cypress 9 archived in action's <a
href="https://github.com/cypress-io/github-action/tree/v5">v5</a>
branch</td>
</tr>
<tr>
<td>v6.0.0</td>
<td>Action runs under Node.js 20 instead of Node.js 16</td>
</tr>
<tr>
<td>v5.8.1</td>
<td>Examples remove Node.js 19. End of support for Node.js 19</td>
</tr>
<tr>
<td>v5.8.0</td>
<td>Add GitHub step output <code>resultsUrl</code>. Deprecate
<code>dashboardUrl</code>.</td>
</tr>
<tr>
<td>v5.7.0</td>
<td>Add basic Yarn Modern Plug'n'Play support</td>
</tr>
<tr>
<td>v5.6.2</td>
<td>Examples add Node.js 20. End of support and removal of Node.js 14
examples.</td>
</tr>
<tr>
<td>v5.6.0</td>
<td>Add check for lockfile presence</td>
</tr>
<tr>
<td>v5.5.0</td>
<td>Examples add Yarn Modern</td>
</tr>
<tr>
<td>v5.4.0</td>
<td>Examples add Yarn Classic</td>
</tr>
<tr>
<td>v5.3.0</td>
<td>Add parameter <code>publish-summary</code> (default
<code>true</code>)</td>
</tr>
<tr>
<td>v5.2.0</td>
<td>Examples add Node.js 19</td>
</tr>
<tr>
<td>v5.1.0</td>
<td>Add parameter <code>auto-cancel-after-failures</code></td>
</tr>
<tr>
<td>v5.0.0</td>
<td>Examples add Node.js 18 and remove Node.js 12</td>
</tr>
<tr>
<td>v4.2.2</td>
<td>Dependency on GitHub <code>set-output</code> workflow command
removed</td>
</tr>
<tr>
<td>v4.2.0</td>
<td>Support for <code>pnpm</code> added</td>
</tr>
<tr>
<td>v4.0.0</td>
<td>Support for Cypress 10 and later versions added</td>
</tr>
<tr>
<td>v3</td>
<td>Action runs under Node.js 16 instead of Node.js 12</td>
</tr>
<tr>
<td>v2</td>
<td>Cypress runs using the <a
href="https://on.cypress.io/module-api">Module API</a></td>
</tr>
<tr>
<td>v1</td>
<td><em>This version is no longer runnable in GitHub due to security
changes.</em></td>
</tr>
</tbody>
</table>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="615dcf6529"><code>615dcf6</code></a>
feat(deps): remove node.js 23 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1479">#1479</a>)</li>
<li><a
href="8d783c7ece"><code>8d783c7</code></a>
chore(deps): update cypress/browsers docker tag to v22.16.0 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1471">#1471</a>)</li>
<li><a
href="4e70d9ac4a"><code>4e70d9a</code></a>
chore(deps): update dependency <code>@​stylistic/eslint-plugin</code> to
v4.4.0 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1472">#1472</a>)</li>
<li><a
href="e1b75428f7"><code>e1b7542</code></a>
docs: min action version v6.7.9 needed for caching (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1474">#1474</a>)</li>
<li><a
href="035ed65812"><code>035ed65</code></a>
chore(deps): update cypress to 14.4.0 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1470">#1470</a>)</li>
<li><a
href="ca758af8d6"><code>ca758af</code></a>
chore(deps): update dependency node to v20.19.2 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1467">#1467</a>)</li>
<li><a
href="8d0844994c"><code>8d08449</code></a>
chore(deps): update cypress/browsers docker tag to v22.15.1 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1466">#1466</a>)</li>
<li><a
href="be1bab96b3"><code>be1bab9</code></a>
fix(ci): update semantic-version to 24.2.3 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1465">#1465</a>)</li>
<li><a
href="a04b1ce84e"><code>a04b1ce</code></a>
fix(deps): update undici transitive dependency (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1463">#1463</a>)</li>
<li><a
href="448ce622fc"><code>448ce62</code></a>
chore(deps): update eslint monorepo to v9.26.0 (<a
href="https://redirect.github.com/cypress-io/github-action/issues/1410">#1410</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/cypress-io/github-action/compare/v6.7.10...v6.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cypress-io/github-action&package-manager=github_actions&previous-version=6.7.10&new-version=6.10.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-05 22:00:12 +02:00

322 lines
12 KiB
YAML

name: Scheduled
on:
schedule:
- cron: '0 0 * * *' # every day at midnight
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check_date: # https://stackoverflow.com/questions/63014786/how-to-schedule-a-github-actions-nightly-build-but-run-it-only-when-there-where
runs-on: ubuntu-latest
name: Check latest commit
outputs:
should_run: ${{ steps.should_run.outputs.should_run }}
steps:
- uses: actions/checkout@v4
- name: print latest_commit
run: echo ${{ github.sha }}
- id: should_run
continue-on-error: true
name: check latest commit is less than a day
if: ${{ github.event_name == 'schedule' }}
run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false"
# run Sytest in different variations
sytest:
needs: check_date
if: ${{ needs.check_date.outputs.should_run != 'false' }}
timeout-minutes: 60
name: "Sytest (${{ matrix.label }})"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- label: SQLite native
- label: SQLite Cgo
cgo: 1
- label: PostgreSQL
postgres: postgres
container:
image: matrixdotorg/sytest-dendrite:latest
volumes:
- ${{ github.workspace }}:/src
- /root/.cache/go-build:/github/home/.cache/go-build
- /root/.cache/go-mod:/gopath/pkg/mod
env:
POSTGRES: ${{ matrix.postgres && 1}}
SYTEST_BRANCH: ${{ github.head_ref }}
RACE_DETECTION: 1
COVER: 1
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/go-build
/gopath/pkg/mod
key: ${{ runner.os }}-go-sytest-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-sytest-
- name: Run Sytest
run: /bootstrap.sh dendrite
working-directory: /src
- name: Summarise results.tap
if: ${{ always() }}
run: /sytest/scripts/tap_to_gha.pl /logs/results.tap
- name: Sytest List Maintenance
if: ${{ always() }}
run: /src/show-expected-fail-tests.sh /logs/results.tap /src/sytest-whitelist /src/sytest-blacklist
continue-on-error: true # not fatal
- name: Are We Synapse Yet?
if: ${{ always() }}
run: /src/are-we-synapse-yet.py /logs/results.tap -v
continue-on-error: true # not fatal
- name: Upload Sytest logs
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: Sytest Logs - ${{ job.status }} - (Dendrite ${{ join(matrix.*, ' ') }})
path: |
/logs/results.tap
/logs/**/*.log*
/logs/**/covdatafiles/**
sytest-coverage:
timeout-minutes: 5
name: "Sytest Coverage"
runs-on: ubuntu-latest
needs: [ sytest, check_date ] # only run once Sytest is done and there was a commit
if: ${{ always() && needs.check_date.outputs.should_run != 'false' }}
steps:
- uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 'stable'
cache: true
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Collect coverage
run: |
go tool covdata textfmt -i="$(find Sytest* -name 'covmeta*' -type f -exec dirname {} \; | uniq | paste -s -d ',' -)" -o sytest.cov
grep -Ev 'relayapi|setup/mscs|api_trace' sytest.cov > final.cov
go tool covdata func -i="$(find Sytest* -name 'covmeta*' -type f -exec dirname {} \; | uniq | paste -s -d ',' -)"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./final.cov
flags: sytest
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
# run Complement
complement:
needs: check_date
if: ${{ needs.check_date.outputs.should_run != 'false' }}
name: "Complement (${{ matrix.label }})"
timeout-minutes: 60
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- label: SQLite native
cgo: 0
- label: SQLite Cgo
cgo: 1
- label: PostgreSQL
postgres: Postgres
cgo: 0
steps:
# Env vars are set file a file given by $GITHUB_PATH. We need both Go 1.17 and GOPATH on env 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: |
echo "$GOROOT_1_17_X64/bin" >> $GITHUB_PATH
echo "~/go/bin" >> $GITHUB_PATH
- name: "Install Complement Dependencies"
# We don't need to install Go because it is included on the Ubuntu 20.04 image:
# See https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md specifically GOROOT_1_17_X64
run: |
sudo apt-get update && sudo apt-get install -y libolm3 libolm-dev
go install github.com/gotesttools/gotestfmt/v2/cmd/gotestfmt@latest
- name: Run actions/checkout@v4 for dendrite
uses: actions/checkout@v4
with:
path: dendrite
# Attempt to check out the same branch of Complement as the PR. If it
# doesn't exist, fallback to main.
- name: Checkout complement
shell: bash
run: |
mkdir -p complement
# Attempt to use the version of complement which best matches the current
# build. Depending on whether this is a PR or release, etc. we need to
# use different fallbacks.
#
# 1. First check if there's a similarly named branch (GITHUB_HEAD_REF
# for pull requests, otherwise GITHUB_REF).
# 2. Attempt to use the base branch, e.g. when merging into release-vX.Y
# (GITHUB_BASE_REF for pull requests).
# 3. Use the default complement branch ("master").
for BRANCH_NAME in "$GITHUB_HEAD_REF" "$GITHUB_BASE_REF" "${GITHUB_REF#refs/heads/}" "master"; do
# Skip empty branch names and merge commits.
if [[ -z "$BRANCH_NAME" || $BRANCH_NAME =~ ^refs/pull/.* ]]; then
continue
fi
(wget -O - "https://github.com/matrix-org/complement/archive/$BRANCH_NAME.tar.gz" | tar -xz --strip-components=1 -C complement) && break
done
# Build initial Dendrite image
- run: docker build --build-arg=CGO=${{ matrix.cgo }} -t complement-dendrite:${{ matrix.postgres }}${{ matrix.cgo }} -f build/scripts/Complement${{ matrix.postgres }}.Dockerfile .
working-directory: dendrite
env:
DOCKER_BUILDKIT: 1
- name: Create post test script
run: |
cat <<EOF > /tmp/posttest.sh
#!/bin/bash
mkdir -p /tmp/Complement/logs/\$2/\$1/
docker cp \$1:/tmp/covdatafiles/. /tmp/Complement/logs/\$2/\$1/
EOF
chmod +x /tmp/posttest.sh
# Run Complement
- run: |
set -o pipefail &&
go test -v -json -tags dendrite_blacklist ./tests ./tests/csapi 2>&1 | gotestfmt -hide all
shell: bash
name: Run Complement Tests
env:
COMPLEMENT_BASE_IMAGE: complement-dendrite:${{ matrix.postgres }}${{ matrix.cgo }}
COMPLEMENT_SHARE_ENV_PREFIX: COMPLEMENT_DENDRITE_
COMPLEMENT_DENDRITE_COVER: 1
COMPLEMENT_POST_TEST_SCRIPT: /tmp/posttest.sh
working-directory: complement
- name: Upload Complement logs
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: Complement Logs - (Dendrite ${{ join(matrix.*, ' ') }})
path: |
/tmp/Complement/logs/**
complement-coverage:
timeout-minutes: 5
name: "Complement Coverage"
runs-on: ubuntu-latest
needs: [ complement, check_date ] # only run once Complements is done and there was a commit
if: ${{ always() && needs.check_date.outputs.should_run != 'false' }}
steps:
- uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 'stable'
cache: true
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Collect coverage
run: |
go tool covdata textfmt -i="$(find Complement* -name 'covmeta*' -type f -exec dirname {} \; | uniq | paste -s -d ',' -)" -o complement.cov
grep -Ev 'relayapi|setup/mscs|api_trace' complement.cov > final.cov
go tool covdata func -i="$(find Complement* -name 'covmeta*' -type f -exec dirname {} \; | uniq | paste -s -d ',' -)"
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./final.cov
flags: complement
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }} # required
element-web:
if: ${{ false }} # disable for now, as Cypress has been replaced by Playwright
timeout-minutes: 120
runs-on: ubuntu-latest
steps:
- uses: tecolicom/actions-use-apt-tools@v1
with:
# Our test suite includes some screenshot tests with unusual diacritics, which are
# supposed to be covered by STIXGeneral.
tools: fonts-stix
- uses: actions/checkout@v4
with:
repository: matrix-org/matrix-react-sdk
- uses: actions/setup-node@v4
with:
cache: 'yarn'
- name: Fetch layered build
run: scripts/ci/layered.sh
- name: Copy config
run: cp element.io/develop/config.json config.json
working-directory: ./element-web
- name: Build
env:
CI_PACKAGE: true
NODE_OPTIONS: "--openssl-legacy-provider"
run: yarn build
working-directory: ./element-web
- name: Edit Test Config
run: |
sed -i '/HOMESERVER/c\ HOMESERVER: "dendrite",' cypress.config.ts
- name: "Run cypress tests"
uses: cypress-io/github-action@v6.10.0
with:
browser: chrome
start: npx serve -p 8080 ./element-web/webapp
wait-on: 'http://localhost:8080'
env:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true
TMPDIR: ${{ runner.temp }}
element-web-pinecone:
if: ${{ false }} # disable for now, as Cypress has been replaced by Playwright
timeout-minutes: 120
runs-on: ubuntu-latest
steps:
- uses: tecolicom/actions-use-apt-tools@v1
with:
# Our test suite includes some screenshot tests with unusual diacritics, which are
# supposed to be covered by STIXGeneral.
tools: fonts-stix
- uses: actions/checkout@v4
with:
repository: matrix-org/matrix-react-sdk
- uses: actions/setup-node@v4
with:
cache: 'yarn'
- name: Fetch layered build
run: scripts/ci/layered.sh
- name: Copy config
run: cp element.io/develop/config.json config.json
working-directory: ./element-web
- name: Build
env:
CI_PACKAGE: true
NODE_OPTIONS: "--openssl-legacy-provider"
run: yarn build
working-directory: ./element-web
- name: Edit Test Config
run: |
sed -i '/HOMESERVER/c\ HOMESERVER: "dendritePinecone",' cypress.config.ts
- name: "Run cypress tests"
uses: cypress-io/github-action@v6.10.0
with:
browser: chrome
start: npx serve -p 8080 ./element-web/webapp
wait-on: 'http://localhost:8080'
env:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: true
TMPDIR: ${{ runner.temp }}