5cb2800d15
Since the contracts workspace depends on the common code in the main workspace, and since the contracts are critical to not have regressions in, trigger contracts CI on any changes to the workspace Cargo.toml and lock files.
76 lines
2.1 KiB
YAML
76 lines
2.1 KiB
YAML
name: ci-contracts
|
|
|
|
on:
|
|
push:
|
|
paths:
|
|
- 'contracts/**'
|
|
- 'common/**'
|
|
pull_request:
|
|
paths:
|
|
- 'contracts/**'
|
|
- 'common/**'
|
|
- 'Cargo.lock'
|
|
- 'Cargo.toml'
|
|
- '.github/workflows/ci-contracts.yml'
|
|
|
|
jobs:
|
|
matrix_prep:
|
|
runs-on: ubuntu-20.04
|
|
outputs:
|
|
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
|
steps:
|
|
# creates the matrix strategy from ci-contracts-matrix-includes.json
|
|
- uses: actions/checkout@v4
|
|
- id: set-matrix
|
|
uses: JoshuaTheMiller/conditional-build-matrix@main
|
|
with:
|
|
inputFile: '.github/workflows/ci-contracts-matrix-includes.json'
|
|
filter: '[?runOnEvent==`${{ github.event_name }}` || runOnEvent==`always`]'
|
|
build:
|
|
# since it's going to be compiled into wasm, there's absolutely
|
|
# no point in running CI on different OS-es
|
|
runs-on: ubuntu-20.04
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
needs: matrix_prep
|
|
strategy:
|
|
fail-fast: false
|
|
matrix: ${{fromJson(needs.matrix_prep.outputs.matrix)}}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup rust
|
|
uses: actions-rs/toolchain@v1
|
|
with:
|
|
profile: minimal
|
|
toolchain: ${{ matrix.rust }}
|
|
target: wasm32-unknown-unknown
|
|
override: true
|
|
components: rustfmt, clippy
|
|
|
|
- name: Build contracts
|
|
uses: actions-rs/cargo@v1
|
|
env:
|
|
RUSTFLAGS: '-C link-arg=-s'
|
|
with:
|
|
command: build
|
|
args: --manifest-path contracts/Cargo.toml --workspace --lib --target wasm32-unknown-unknown
|
|
|
|
- name: Run unit tests
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: test
|
|
args: --lib --manifest-path contracts/Cargo.toml
|
|
|
|
- name: Check formatting
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: fmt
|
|
args: --manifest-path contracts/Cargo.toml --all -- --check
|
|
|
|
- name: Run clippy
|
|
uses: actions-rs/cargo@v1
|
|
with:
|
|
command: clippy
|
|
args: --lib --manifest-path contracts/Cargo.toml --workspace --all-targets -- -D warnings
|