Bonds for Fortified DSMR #705
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
# Copyright (C) 2023, Ava Labs, Inc. All rights reserved. | |
# See the file LICENSE for licensing terms. | |
name: Contracts CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
cargo-fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
cache: false | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# we just want to cache the tools for this one | |
cache-targets: false | |
# need to cache "all-crates" to get the tools | |
cache-all-crates: true | |
# caching isn't actually for dependencies but the tools | |
# so it doesn't matter if the job passes or fails | |
cache-on-failure: true | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: taplo-cli | |
- name: Run static analysis tests | |
run: cargo fmt --all --check | |
- name: Check TOML files | |
run: taplo fmt --check | |
- name: print diff | |
if: failure() | |
run: | | |
cargo fmt --all | |
taplo fmt | |
git diff --color=always | |
cargo-doc: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: ./.github/actions/install-go | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
targets: wasm32-unknown-unknown | |
cache: false | |
- name: Run doc tests | |
run: RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features --document-private-items --all | |
cargo-clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: ./.github/actions/install-go | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
targets: wasm32-unknown-unknown | |
- name: Run static analysis tests | |
shell: bash | |
run: cargo clippy --all --all-features --tests --benches --examples -- -D warnings | |
cargo-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: ./.github/actions/install-go | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
targets: wasm32-unknown-unknown | |
- name: Run unit tests | |
run: cargo test --all-features --all | |
cross-tests: | |
runs-on: ubuntu-latest | |
services: | |
docker: | |
image: docker:19.03.12 | |
options: --privileged | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
# we just want to cache the tools for this one | |
cache-targets: false | |
# need to cache "all-crates" to get the tools | |
cache-all-crates: true | |
# caching isn't actually for dependencies but the tools | |
# so it doesn't matter if the job passes or fails | |
cache-on-failure: true | |
- uses: taiki-e/install-action@v2 | |
with: | |
tool: cross | |
- name: Run cross tests | |
run: | | |
cross -v test -p wasmlanche --target=wasm32-unknown-emscripten | |
go-test: | |
runs-on: ubuntu-20.04-32 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: ./.github/actions/install-go | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
targets: wasm32-unknown-unknown | |
cache: false | |
- name: Run unit tests | |
shell: bash | |
run: go test -v -race ./x/contracts/... | |
go-bench: | |
runs-on: ubuntu-20.04-32 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: ./.github/actions/install-go | |
- name: Install Rust | |
uses: ./.github/actions/install-rust | |
with: | |
targets: wasm32-unknown-unknown | |
cache: false | |
- name: Run unit tests | |
shell: bash | |
run: go test -v -benchmem -run=^$ -bench=. -benchtime=1x ./x/contracts/... |