feat: add seal regression testing support #106
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
name: CI | |
#on: [pull_request, push] | |
on: [push] | |
# Cancel a job if there's a new on on the same branch started. | |
# Based on https://stackoverflow.com/questions/58895283/stop-already-running-workflow-job-in-github-actions/67223051#67223051 | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: 1 | |
# Faster crates.io index checkout. | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
RUST_LOG: debug | |
jobs: | |
check_clippy: | |
runs-on: self-hosted | |
name: Clippy | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run cargo clippy | |
run: cargo clippy --all-targets --workspace -- -D warnings | |
check_fmt: | |
runs-on: self-hosted | |
name: Checking fmt | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
test_release: | |
runs-on: self-hosted | |
name: Test in release mode | |
strategy: | |
matrix: | |
cargo-args: ['', '--features fixed-rows-to-discard'] | |
env: | |
# Run all tests with multicore-SDR enabled. | |
FIL_PROOFS_USE_MULTICORE_SDR: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Run usual tests in release profile | |
run: cargo test --verbose --release --workspace --all-targets ${{ matrix.cargo-args }} -- --nocapture | |
- name: Run isolated PoRep tests in release profile | |
run: cargo test --release -p storage-proofs-porep --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture --test-threads=1 | |
- name: Run isolated update tests in release profile | |
run: cargo test --release -p storage-proofs-update --features isolated-testing ${{ matrix.cargo-args }} -- --nocapture | |
test_ignored_release: | |
runs-on: self-hosted | |
name: Test ignored in release mode | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Test ignored in release profile | |
run: cargo test --release --workspace -- ignored --nocapture | |
test_no_default_features: | |
runs-on: self-hosted | |
name: Test without default features | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Test ignored in release profile | |
run: cargo test --release --workspace --no-default-features | |
build_gpu: | |
runs-on: self-hosted | |
name: Build with various GPU support enabled | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build with `cuda` and `opencl` features enabled | |
run: cargo build --workspace --features cuda,opencl | |
- name: Build with `cuda-supraseal` feature enabled | |
run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo build --workspace --no-default-features --features cuda-supraseal | |
test_gpu: | |
runs-on: self-hosted | |
name: Test on GPUs | |
strategy: | |
matrix: | |
test-args: ['', '--ignored'] | |
env: | |
FIL_PROOFS_USE_GPU_COLUMN_BUILDER: true | |
FIL_PROOFS_USE_GPU_TREE_BUILDER: true | |
BELLMAN_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75 | |
NEPTUNE_CUDA_NVCC_ARGS: --fatbin --gpu-architecture=sm_75 --generate-code=arch=compute_75,code=sm_75 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Test with CUDA | |
run: cargo test --verbose --release --workspace --features cuda -- --nocapture ${{ matrix.test-args }} -- --test-threads=1 | |
- name: Test with `cuda-supraseal` | |
run: CC=gcc-12 CXX=g++-12 NVCC_PREPEND_FLAGS='-ccbin /usr/bin/g++-12' cargo test -p filecoin-proofs --release --no-default-features --features cuda-supraseal -- --nocapture --test-threads=1 ${{ matrix.test-args }} | |
test_macos: | |
runs-on: macos-latest | |
name: Test in release mode on MacOS | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install required packages | |
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install hwloc | |
- name: Download the proof params | |
uses: ./.github/actions/proof-params-download | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run usual tests in release profile | |
run: cargo test --verbose --release --workspace -- --nocapture |