HPC chain Stage 7 correctness: 2nd-pass Percolator, file_stems-aware reconciliation hash, Stage 6 hard-error gates #241
This file contains hidden or 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: | |
| push: | |
| branches: [main, develop, performance-optimization] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| test: | |
| name: Test (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Install dependencies (Ubuntu) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libopenblas-dev libssl-dev cmake pkg-config | |
| - name: Install dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| # cmake and openssl@3 are pre-installed on the macos-latest runner image; | |
| # only openblas needs explicit install. `brew install openblas` is a no-op | |
| # when already-installed but kept here as the contract is "ensure present". | |
| run: | | |
| brew install openblas | |
| BREW_PREFIX=$(brew --prefix openblas) | |
| echo "LDFLAGS=-L${BREW_PREFIX}/lib" >> $GITHUB_ENV | |
| echo "CPPFLAGS=-I${BREW_PREFIX}/include" >> $GITHUB_ENV | |
| - name: Install dependencies (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| vcpkg install openblas:x64-windows openssl:x64-windows | |
| echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> $env:GITHUB_ENV | |
| - name: Cache cargo registry | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| - name: Run clippy | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| - name: Run tests | |
| run: cargo test --all-features --verbose | |
| - name: Build release | |
| run: cargo build --release |