Merge pull request #431 from Concordium/load-module-under-test #223
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: "Testing library: Format, lint, build, and test" | |
# This job runs: | |
# - rustfmt | |
# - rustdoc | |
# - clippy linting | |
# - tests | |
# for the smart contract testing library. | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: main | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
paths: | |
- 'contract-testing/**/*.rs' | |
- 'contract-testing/**/*.toml' | |
- 'rustfmt.toml' | |
- 'concordium-rust-sdk' | |
- 'concordium-std-derive' | |
workflow_dispatch: # allows manual trigger | |
env: | |
RUST_FMT: nightly-2023-04-01-x86_64-unknown-linux-gnu | |
RUST_CLIPPY: 1.73 | |
jobs: | |
"lint_fmt": | |
name: ${{ matrix.build-dir }} lint:fmt | |
# Don't run on draft pull requests | |
if: ${{ !github.event.pull_request.draft }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build-dir: | |
- 'contract-testing' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.RUST_FMT }} | |
override: true | |
components: rustfmt | |
- name: Format | |
working-directory: ${{ matrix.build-dir }} | |
run: | | |
cargo fmt -- --color=always --check | |
"lint_doc": | |
name: ${{ matrix.build-dir }} lint:doc | |
# Don't run on draft pull requests | |
if: ${{ !github.event.pull_request.draft }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build-dir: | |
- 'contract-testing' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.RUST_CLIPPY }} | |
override: true | |
- name: Docs | |
working-directory: ${{ matrix.build-dir }} | |
run: | | |
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features --color=always | |
"lint_clippy": | |
name: ${{ matrix.build-dir }} lint:clippy | |
# Don't run on draft pull requests | |
if: ${{ !github.event.pull_request.draft }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
build-dir: | |
- 'contract-testing' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.RUST_CLIPPY }} | |
override: true | |
components: clippy | |
- name: Clippy | |
working-directory: ${{ matrix.build-dir }} | |
run: | | |
git config --global url."https://github.com/".insteadOf "[email protected]:" | |
cargo clippy --color=always --tests --benches -- -Dclippy::all | |
"cargo_test": | |
name: ${{ matrix.build-dir }} cargo:test | |
runs-on: ubuntu-latest | |
needs: "lint_fmt" | |
strategy: | |
matrix: | |
build-dir: | |
- 'contract-testing' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: ${{ env.RUST_CLIPPY }} | |
override: true | |
- name: Test | |
working-directory: ${{ matrix.build-dir }} | |
run: cargo test -- --skip io_tests # Skip the I/O tests in the testing library. |