Skip to content

Build against latest matrix-sdk-crypto #23

Build against latest matrix-sdk-crypto

Build against latest matrix-sdk-crypto #23

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 }}"}'