WIP - Clarinet format #459
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 - Clarinet SDK | |
on: | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- "**/CHANGELOG.md" | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "**/CHANGELOG.md" | |
# Cancel previous runs for the same workflow | |
concurrency: | |
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
build_wasm: | |
name: Build and test Wasm packages | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Rust toolchain | |
run: | | |
rustup toolchain install stable --profile minimal --component rustfmt | |
rustup target add wasm32-unknown-unknown | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Setup cache keys | |
run: | | |
echo "RUST_VERSION_HASH=$(rustc --version | sha256sum | awk '{print $1}')" >> $GITHUB_ENV | |
echo "NODE_VERSION_HASH=$(node --version | sha256sum | awk '{print $1}')" >> $GITHUB_ENV | |
- name: Cache cargo | |
uses: actions/cache@v4 | |
with: | |
path: | | |
target/release/build/ | |
target/wasm32-unknown-unknown/ | |
key: clarinet-sdk-cargo-${{ runner.os }}-${{ env.RUST_VERSION_HASH }}-${{ hashFiles('./Cargo.lock') }} | |
- name: Install wasm-pack | |
run: npm install -g wasm-pack | |
- name: Run wasm-bindgen-test | |
run: wasm-pack test --node components/clarinet-sdk-wasm | |
- name: Build Wasm packages | |
run: npm run build:sdk-wasm | |
- name: Upload Wasm artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wasm-artifacts | |
path: components/clarinet-sdk-wasm/pkg-* | |
test: | |
name: Run clarinet-sdk tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
needs: build_wasm | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Download Wasm artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: wasm-artifacts | |
path: components/clarinet-sdk-wasm | |
- name: Install dependencies | |
run: npm ci | |
- name: Run tests | |
run: npm run test |