Skip to content

CI

CI #841

Workflow file for this run

name: CI
on:
workflow_call:
schedule:
- cron: "0 7 * * 1"
push:
branches:
- '*'
- '!main'
- '!beta'
- '!alpha'
pull_request:
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
permissions:
contents: read
jobs:
lint:
timeout-minutes: 10
runs-on: ubuntu-22.04
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4.1.7
with:
submodules: recursive
- name: Prepare build environemnt
id: prepare
uses: ./.github/actions/prepare-build-env
- name: Run cargo clippy
run: |
cargo clippy --tests -- --deny "warnings"
- name: Post build environemnt
if: always()
uses: ./.github/actions/post-build-env
with:
cargo-cache-primary-key: ${{ steps.prepare.outputs.cargo-cache-primary-key }}
cargo-cache-hit: ${{ steps.prepare.outputs.cargo-cache-hit }}
build_native:
timeout-minutes: 10
runs-on: ubuntu-22.04
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4.1.7
with:
submodules: recursive
- name: Prepare build environemnt
id: prepare
uses: ./.github/actions/prepare-build-env
- name: Run cargo build
run: cargo build
- name: Post build environemnt
if: always()
uses: ./.github/actions/post-build-env
with:
cargo-cache-primary-key: ${{ steps.prepare.outputs.cargo-cache-primary-key }}
cargo-cache-hit: ${{ steps.prepare.outputs.cargo-cache-hit }}
build_wasm:
timeout-minutes: 10
runs-on: ubuntu-22.04
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4.1.7
with:
submodules: recursive
- name: Prepare build environemnt
id: prepare
uses: ./.github/actions/prepare-build-env
- name: Run wasm-pack build
run: |
wasm-pack build --release --target web -- --features wasm
wasm-pack build --release --target nodejs -d pkg/node -- --features wasm
- name: Upload wasm-pack build output
uses: actions/upload-artifact@v4.3.4
with:
name: wasm-pack-build
path: pkg
- name: Post build environemnt
if: always()
uses: ./.github/actions/post-build-env
with:
cargo-cache-primary-key: ${{ steps.prepare.outputs.cargo-cache-primary-key }}
cargo-cache-hit: ${{ steps.prepare.outputs.cargo-cache-hit }}
test_native:
timeout-minutes: 10
runs-on: ubuntu-22.04
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4.1.7
with:
submodules: recursive
- name: Prepare build environemnt
id: prepare
uses: ./.github/actions/prepare-build-env
- name: Run cargo test
run: |
cargo test -- --nocapture
- name: Post build environemnt
if: always()
uses: ./.github/actions/post-build-env
with:
cargo-cache-primary-key: ${{ steps.prepare.outputs.cargo-cache-primary-key }}
cargo-cache-hit: ${{ steps.prepare.outputs.cargo-cache-hit }}
test_wasm:
needs: build_wasm
timeout-minutes: 10
runs-on: ubuntu-22.04
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4.1.7
with:
submodules: recursive
- name: Download wasm-pack build output
uses: actions/download-artifact@v4.1.8
with:
name: wasm-pack-build
path: pkg
- name: Setup node
uses: actions/setup-node@v4.0.3
with:
node-version: "lts/*"
- name: Run jest test
run: |
npm ci
npm test