name: ci-contracts on: push: paths: - 'contracts/**' - 'common/**' pull_request: paths: - 'contracts/**' - 'common/**' - 'Cargo.lock' - 'Cargo.toml' - '.github/workflows/ci-contracts.yml' jobs: build: # since it's going to be compiled into wasm, there's absolutely # no point in running CI on different OS-es runs-on: arc-linux-latest env: CARGO_TERM_COLOR: always RUSTUP_PERMIT_COPY_RENAME: 1 steps: - uses: actions/checkout@v6 - name: Setup rust uses: actions-rs/toolchain@v1 with: profile: minimal # pinned due to issues building contracts toolchain: 1.86.0 target: wasm32-unknown-unknown override: true components: rustfmt, clippy - name: Install cosmwasm-check run: cargo install cosmwasm-check --locked - name: Install wasm-opt uses: ./.github/actions/install-wasm-opt with: version: '114' - 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 --all-features - 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 - name: Check chain compatibility against release build # this will build contracts in release mode, run wasm-opt and finally cosmwasm-check run: make contracts