Wasm bindings checks #9251
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: Wasm bindings checks | |
on: | |
push: | |
branches: [develop, staging] | |
paths: | |
- ".github/actions/**" | |
- "**.rs" # Include all rust files | |
- "**Cargo.toml" # Include all Cargo.toml files | |
- "**Cargo.lock" # Include all Cargo.lock files | |
- "!**/examples/**" # Exclude all examples | |
- "!**/tests/**" # Exclude all tests | |
- "!cli/**" # Exclude CLI | |
- "!**/bindings/**" # Exclude all bindings | |
- "bindings/wasm/**" | |
- "bindings/nodejs/**" | |
- ".github/workflows/bindings-wasm.yml" | |
pull_request: | |
branches: [develop, staging] | |
paths: | |
- ".github/actions/**" | |
- "**.rs" # Include all rust files | |
- "**Cargo.toml" # Include all Cargo.toml files | |
- "**Cargo.lock" # Include all Cargo.lock files | |
- "!**/examples/**" # Exclude all examples | |
- "!**/tests/**" # Exclude all tests | |
- "!cli/**" # Exclude CLI | |
- "!**/bindings/**" # Exclude all bindings | |
- "bindings/wasm/**" | |
- "bindings/nodejs/**" | |
- ".github/workflows/bindings-wasm.yml" | |
schedule: | |
- cron: "0 1 * * *" | |
workflow_dispatch: | |
env: | |
CARGO_INCREMENTAL: 0 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
name: Test | |
if: ${{ ! github.event.schedule }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# os: [windows-latest, macos-latest, ubuntu-latest] | |
os: [windows-latest, ubuntu-latest] | |
node: ["18"] | |
steps: | |
- name: Checkout the Source Code | |
uses: actions/checkout@v3 | |
- name: Set up Rust | |
uses: ./.github/actions/setup-rust | |
with: | |
targets: wasm32-unknown-unknown | |
cache-root: bindings/wasm | |
# Download a pre-compiled wasm-bindgen binary. | |
- name: Install wasm-bindgen-cli | |
uses: jetli/[email protected] | |
with: | |
version: "0.2.92" | |
- name: Set Up Node.js ${{ matrix.node }} and Yarn Cache | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: yarn | |
cache-dependency-path: bindings/wasm/yarn.lock | |
- name: Run Yarn Install | |
working-directory: bindings/wasm/ | |
run: yarn install | |
- name: Run Yarn Build | |
working-directory: bindings/wasm/ | |
run: yarn build | |
- name: Start private tangle | |
if: ${{ startsWith(matrix.os, 'ubuntu') }} | |
uses: "./.github/actions/private-tangle/setup" | |
- name: Run Yarn Test | |
if: ${{ startsWith(matrix.os, 'ubuntu') }} | |
working-directory: bindings/wasm/ | |
run: yarn test | |
- name: Run Yarn Test | |
if: ${{ !startsWith(matrix.os, 'ubuntu') }} | |
working-directory: bindings/wasm/ | |
# Only run test that doesn't require a node because we can't use the private tangle script on macos and windows | |
run: yarn test -t 'Wallet methods' | |
- name: Tear down private tangle | |
if: ${{ startsWith(matrix.os, 'ubuntu') }} | |
uses: "./.github/actions/private-tangle/tear-down" | |
lint: | |
name: Lint | |
if: ${{ ! github.event.schedule }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Source Code | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
cache: yarn | |
cache-dependency-path: bindings/wasm/yarn.lock | |
node-version: 18.x | |
- name: Install Dependencies | |
working-directory: bindings/wasm/ | |
run: yarn install --ignore-scripts | |
- name: Lint | |
working-directory: bindings/wasm/ | |
run: yarn lint | |
check-format: | |
name: Check Format | |
if: ${{ ! github.event.schedule }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Source Code | |
uses: actions/checkout@v3 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
cache: yarn | |
cache-dependency-path: bindings/wasm/yarn.lock | |
node-version: 18.x | |
- name: Install Dependencies | |
working-directory: bindings/wasm/ | |
run: yarn install --ignore-scripts | |
- name: Format | |
working-directory: bindings/wasm/ | |
run: yarn format-check |