- 6 CI jobs: rust-assembler, rust-primitives, ts-packages, install-dry-run, shell-lint, genesis-scan - matrix: Ubuntu+macOS × rust-stable × Node 18/20/22 - closes 'no CI' -10% audit deduction
87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
rust-assembler:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: _assembler
|
|
- run: cd _assembler && cargo test --release
|
|
|
|
rust-primitives:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: _primitives/_rust
|
|
- run: cd _primitives/_rust && cargo test --workspace --release
|
|
|
|
ts-packages:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
node: ['18', '20', '22']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
- run: cd _ts_packages && npm ci
|
|
- run: cd _ts_packages && npm run build --workspaces
|
|
- run: cd _ts_packages && npm test --workspaces --if-present
|
|
|
|
install-dry-run:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, macos-latest]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- name: Install hard deps (Ubuntu)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: sudo apt-get update && sudo apt-get install -y jq pandoc
|
|
- name: Install hard deps (macOS)
|
|
if: matrix.os == 'macos-latest'
|
|
run: brew install jq pandoc
|
|
- run: bash -n install.sh
|
|
- run: ./install.sh --no-execute --profile=minimal
|
|
- run: ./install.sh --no-execute --profile=dev
|
|
- run: ./install.sh --no-execute --profile=full
|
|
|
|
shell-lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: sudo apt-get update && sudo apt-get install -y shellcheck
|
|
- name: shellcheck (advisory)
|
|
run: find hooks _primitives -name '*.sh' -exec shellcheck -S warning {} +
|
|
continue-on-error: true # warnings are advisory initially
|
|
|
|
genesis-scan:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: dtolnay/rust-toolchain@stable
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: _primitives/_rust
|
|
- run: cd _primitives/_rust && cargo build --release -p genesis-scan
|
|
- run: ./_primitives/_rust/target/release/genesis-scan --path . --format=human --exit-on-hit
|