wip #2434
Workflow file for this run
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
on: | |
pull_request: | |
paths: | |
- "benchmarks/**" | |
- "ironfish-mpc/**" | |
- "ironfish-phase2/**" | |
- "ironfish-rust/**" | |
- "ironfish-rust-nodejs/**" | |
- "ironfish-zkp/**" | |
- "rust-toolchain" | |
- ".github/workflows/rust*" | |
- ".cargo/**" | |
- "Cargo*" | |
push: | |
paths: | |
- "benchmarks/**" | |
- "ironfish-mpc/**" | |
- "ironfish-phase2/**" | |
- "ironfish-rust/**" | |
- "ironfish-rust-nodejs/**" | |
- "ironfish-zkp/**" | |
- "rust-toolchain" | |
- ".github/workflows/rust*" | |
- ".cargo/**" | |
- "Cargo*" | |
name: Rust CI | |
jobs: | |
rust_lint: | |
name: Lint Rust | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: false | |
shared-key: base | |
- name: Install Cargo tools | |
run: | | |
rustup component add rustfmt clippy | |
- name: Check that cargo lockfile is up to date | |
run: | | |
cargo check --locked --all-targets | |
# Note: ironfish-zkp is does not need this due to different licensing | |
- name: Check for license headers for ironfish-rust | |
run: ./ci/lintHeaders.sh ./ironfish-rust/src *.rs | |
- name: Check for license headers for ironfish-rust-nodejs | |
run: ./ci/lintHeaders.sh ./ironfish-rust-nodejs/src *.rs | |
- name: "`cargo fmt` check on ironfish-rust" | |
run: | | |
cargo fmt --all -- --check | |
- name: "Clippy check on ironfish-rust" | |
run: | | |
cargo clippy --all-targets -- -D warnings | |
cargo_vet: | |
name: Vet Dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
save-if: false | |
shared-key: base | |
- name: Install cargo-vet | |
run: | | |
cargo install --locked cargo-vet | |
- name: Vet dependencies | |
run: | | |
cargo vet | |
ironfish_rust: | |
name: Test ironfish-rust | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1/2, 2/2] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: base | |
- name: install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Install nextest | |
uses: taiki-e/install-action@nextest | |
- name: Run tests | |
run: | | |
# ~/.cargo/bin/cargo-nextest nextest run --release --partition count:${{ matrix.shard }} | |
# cargo nextest run --release --partition count:${{ matrix.shard }} | |
cargo llvm-cov nextest --release --test-threads 1 --partition hash:${{ matrix.shard }} | |
# Run tests to collect code coverage | |
# - name: Run cargo-tarpaulin on ironfish-rust | |
# run: | | |
# wget -O tarpaulin.tar.gz https://github.com/xd009642/tarpaulin/releases/download/0.22.0/cargo-tarpaulin-0.22.0-travis.tar.gz | |
# tar -xzf tarpaulin.tar.gz | |
# mv cargo-tarpaulin ~/.cargo/bin/ | |
# cargo tarpaulin -p ironfish --release --out Xml --avoid-cfg-tarpaulin --skip-clean --timeout 300 -- --test-threads 1 | |
# # Upload code coverage to Codecov | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
flags: ironfish-rust | |
files: lcov.info | |
ironfish_zkp: | |
name: Test ironfish-zkp | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: zkp | |
# Run tests to collect code coverage | |
- name: Run cargo-tarpaulin on ironfish-zkp | |
run: | | |
wget -O tarpaulin.tar.gz https://github.com/xd009642/tarpaulin/releases/download/0.22.0/cargo-tarpaulin-0.22.0-travis.tar.gz | |
tar -xzf tarpaulin.tar.gz | |
mv cargo-tarpaulin ~/.cargo/bin/ | |
cargo tarpaulin -p ironfish_zkp --release --out Xml --avoid-cfg-tarpaulin --skip-clean --timeout 300 -- --test-threads 1 | |
# Upload code coverage to Codecov | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
flags: ironfish-zkp |