Update matrix-rust-sdk dependencies #79
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: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- name: Check formatting | |
run: | | |
cargo fmt -- --check | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
- name: Install NPM dependencies | |
run: npm install | |
- name: run lint | |
run: npm run lint | |
test: | |
name: test ${{ matrix.os-name }}, v${{ matrix.node-version }} | |
runs-on: ${{ matrix.os }} | |
needs: [lint] | |
strategy: | |
fail-fast: true | |
matrix: | |
# Use Ubuntu LTS-1 for broader glibc compatibility. | |
os: [ubuntu-20.04] | |
node-version: [18.0, 20.0, 22.0] | |
include: | |
- os: ubuntu-20.04 | |
os-name: 🐧 | |
- os: macos-latest | |
os-name: 🍏 | |
node-version: 20.0 | |
- node-version: 20.0 | |
build-doc: true | |
steps: | |
- name: Checkout the repo | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- name: Load cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install NPM dependencies | |
run: npm install | |
- name: Build | |
run: npm run release-build | |
- name: Test | |
run: npm run test | |
# Building in dev-mode and copy lib in failure case | |
- name: Build in non-release | |
if: failure() | |
run: | | |
cp *.node release-mode-lib.node | |
npm run build | |
- uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: Failure Files | |
path: | | |
bindings/matrix-sdk-crypto-nodejs/*.node | |
/var/crash/*.crash | |
- if: ${{ matrix.build-doc }} | |
name: Build the documentation | |
run: npm run doc | |
docs: | |
name: docs | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Install Protoc | |
uses: arduino/setup-protoc@v1 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: Load cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: ${{ github.ref == 'refs/heads/main' }} | |
- name: Build docs | |
run: | | |
npm install | |
npm run build && npm run doc | |
- name: Upload artifact | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: './docs/' | |
- name: Deploy to GitHub Pages | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
id: deployment | |
uses: actions/deploy-pages@v2 |