Build against latest matrix-sdk-crypto #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build against latest matrix-sdk-crypto | |
# Runs a nightly job that builds this project against the latest version of | |
# matrix-sdk-crypto to find out whether some changes there have modified | |
# interfaces we are relying on. | |
# | |
# It does this by effectively doing: | |
# | |
# cargo update matrix-sdk-crypto | |
# yarn build | |
# | |
# If the build fails, this action: | |
# | |
# * creates an issue in this project's repo (or updates an existing open issue) | |
# * adds a comment to the issue linking to the specific build failure | |
# * sends a message to the Crypto team's Matrix room | |
on: | |
workflow_dispatch: | |
schedule: | |
# Run this task every day at 01:22 UTC | |
- cron: '22 1 * * *' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
permissions: | |
contents: read | |
issues: write | |
jobs: | |
test-against-latest-matrix-sdk-crypto: | |
name: test-against-latest-matrix-sdk-crypto | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: wasm32-unknown-unknown | |
- name: Load cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Update to the latest matrix-sdk-crypto version | |
run: cargo update matrix-sdk-crypto | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
# Keep this in sync with: | |
# .github/workflows/ci.yml | |
# .github/workflows/release.yml | |
node-version: 20.0 | |
- name: Install yarn | |
run: npm install --global yarn | |
- name: Install dependencies | |
run: yarn install | |
- name: Build the WebAssembly + JavaScript binding | |
run: yarn build | |
- name: Test the JavaScript binding | |
run: yarn test | |
- name: Open an issue on failure | |
if: failure() | |
uses: JasonEtco/create-an-issue@1b14a70e4d8dc185e5cc76d3bec9eab20257b2c5 # v2.9.2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
update_existing: true | |
filename: .github/latest_matrix_sdk_failed_issue_template.md | |
id: create-issue | |
- run: 'echo Created/updated ${{ steps.create-issue.outputs.url }}' | |
if: failure() | |
- name: Comment on the issue | |
if: failure() | |
uses: thollander/actions-comment-pull-request@v3 | |
with: | |
message: | | |
Building matrix-rust-sdk-crypto-wasm against the latest matrix-sdk Rust is failing. | |
See https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
pr-number: "${{ steps.create-issue.outputs.number }}" | |
- name: Ping matrix room on failure | |
if: failure() | |
uses: fjogeleit/http-request-action@v1 | |
with: | |
url: ${{ secrets.CRYPTO_HOOK_URL }} | |
method: 'POST' | |
customHeaders: '{"Content-Type": "application/json"}' | |
data: '{"text": "matrix-rust-sdk-crypto-wasm is failing to build against the latest matrix-sdk Rust code. See ${{ steps.create-issue.outputs.url }}"}' |