CI #841
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: | |
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 |