Upstream Diff, for reference only. #149
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 checks | |
on: [push, pull_request] | |
jobs: | |
test: | |
name: Test on ${{ matrix.os }}${{ matrix.name_suffix }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
stage: [stable, beta, nightly] | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
include: | |
- stage: beta | |
name_suffix: " with beta features" | |
extra_flags: --features beta | |
- stage: nightly | |
name_suffix: " with nightly features" | |
extra_flags: --features nightly | |
steps: | |
- uses: actions/checkout@v3 | |
- id: prepare | |
uses: ./.github/actions/prepare | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: > | |
--verbose | |
--release | |
--workspace | |
${{ steps.prepare.outputs.feature-flags }} | |
${{ matrix.extra_flags }} | |
test-32-bit: | |
name: Test on i686-unknown-linux-gnu${{ matrix.name_suffix }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
stage: [stable, beta, nightly] | |
include: | |
- stage: beta | |
name_suffix: " with beta features" | |
- stage: nightly | |
name_suffix: " with nightly features" | |
steps: | |
- uses: actions/checkout@v3 | |
- id: prepare | |
uses: ./.github/actions/prepare | |
with: | |
beta-features: ${{ matrix.stage == 'beta' }} | |
nightly-features: ${{ matrix.stage == 'nightly' }} | |
- name: Install cross-platform support dependencies | |
run: sudo apt install gcc-multilib | |
- run: rustup target add i686-unknown-linux-gnu | |
- name: Run tests | |
run: > | |
cargo test | |
--verbose | |
--release | |
--workspace | |
--target i686-unknown-linux-gnu | |
${{ steps.prepare.outputs.feature-flags }} | |
build: | |
name: Build target ${{ matrix.target }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- wasm32-unknown-unknown | |
- wasm32-wasi | |
steps: | |
- uses: actions/checkout@v3 | |
- id: prepare | |
uses: ./.github/actions/prepare | |
with: | |
nightly-features: true | |
test-dependencies: false | |
- name: Add target | |
run: rustup target add ${{ matrix.target }} | |
- name: cargo build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: > | |
${{ steps.prepare.outputs.feature-flags }} | |
--target ${{ matrix.target }} | |
bitrot: | |
name: Bitrot check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# Check bitrot with stable (as we don't need benchmarks or the test-dev-graph | |
# feature flag to work with MSRV). | |
- uses: ./.github/actions/prepare | |
with: | |
toolchain: stable | |
# Build benchmarks and all-features to prevent bitrot | |
- name: Build benchmarks | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --benches --examples --all-features | |
book: | |
name: Book tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/prepare | |
- name: cargo build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
- name: Setup mdBook | |
uses: peaceiris/actions-mdbook@v1 | |
with: | |
mdbook-version: '0.4.5' | |
- name: Test halo2 book | |
run: mdbook test -L target/debug/deps book/ | |
codecov: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# Use stable for this to ensure that cargo-tarpaulin can be built. | |
- id: prepare | |
uses: ./.github/actions/prepare | |
with: | |
toolchain: stable | |
nightly-features: true | |
- name: Install cargo-tarpaulin | |
uses: actions-rs/cargo@v1 | |
with: | |
command: install | |
args: cargo-tarpaulin | |
- name: Generate coverage report | |
uses: actions-rs/cargo@v1 | |
with: | |
command: tarpaulin | |
args: > | |
${{ steps.prepare.outputs.feature-flags }} | |
--timeout 600 | |
--out Xml | |
- name: Upload coverage to Codecov | |
uses: codecov/[email protected] | |
doc-links: | |
name: Intra-doc links | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/prepare | |
- name: cargo fetch | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fetch | |
# Ensure intra-documentation links all resolve correctly | |
# Requires #![deny(intra_doc_link_resolution_failure)] in crates. | |
- name: Check intra-doc links | |
uses: actions-rs/cargo@v1 | |
with: | |
command: doc | |
args: --all --document-private-items | |
fmt: | |
name: Rustfmt | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/prepare | |
- run: rustup component add rustfmt | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check |