This repository has been archived by the owner on Dec 18, 2023. It is now read-only.
Fix #178: Make MNT{4,6}-753, cp6_782 tests run conditionally #628
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: | ||
branches: | ||
- master | ||
env: | ||
RUST_BACKTRACE: 1 | ||
jobs: | ||
style: | ||
name: Check Style | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Install Rust | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
components: rustfmt | ||
- name: cargo fmt --check | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: fmt | ||
args: --all -- --check | ||
check: | ||
name: Check | ||
runs-on: ubuntu-latest | ||
env: | ||
RUSTFLAGS: -Dwarnings | ||
strategy: | ||
matrix: | ||
rust: | ||
- stable | ||
- nightly | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Install Rust (${{ matrix.rust }}) | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: ${{ matrix.rust }} | ||
override: true | ||
- uses: actions/cache@v2 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
target | ||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Check examples | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: check | ||
args: --examples --all | ||
- name: Check examples with all features on stable | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: check | ||
args: --examples --all-features --all | ||
if: matrix.rust == 'stable' | ||
- name: Check benchmarks on nightly | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: check | ||
args: --all-features --examples --workspace --benches | ||
if: matrix.rust == 'nightly' | ||
directories: # Job that list subdirectories | ||
name: List directories for parallelizing tests | ||
runs-on: ubuntu-latest | ||
outputs: | ||
dir: ${{ steps.set-dirs.outputs.dir }} # generate output name dir by using inner step output | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- id: set-dirs # Give it an id to handle to get step outputs in the outputs key above | ||
run: echo "::set-output name=dir::$(ls -d */ | jq -R -s -c 'split("\n")[:-1]')" | ||
# Define step output named dir base on ls command transformed to JSON thanks to jq | ||
test: | ||
name: Test | ||
runs-on: ubuntu-latest | ||
needs: [directories] # Depends on previous job | ||
strategy: | ||
matrix: | ||
dir: ${{fromJson(needs.directories.outputs.dir)}} # List matrix strategy from directories dynamically | ||
# rust: | ||
# - stable | ||
# - nightly | ||
exclude: | ||
- dir: scripts/ | ||
- dir: curve-constraint-tests/ | ||
- dir: mnt4_753/ | ||
- dir: mnt6_753/ | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Run tests | ||
run: | | ||
cd ${{matrix.dir}} | ||
cargo test --all-features | ||
test-mnt4-753: | ||
name: Test (mnt4_753/) | ||
runs-on: macos-latest | ||
needs: [directories] # Waits for the directory listing job | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Check if mnt4_753 was updated | ||
uses: dorny/[email protected] | ||
id: checkdiff | ||
with: | ||
filters: | | ||
mnt4_753_is_updated: | ||
- 'mnt4_753/**' | ||
- name: Check if dependenies have been updated | ||
id: depencies-updated | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
target | ||
key: mnt4_753-dependencies-updated-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} | ||
- name: Run tests | ||
run: | | ||
cd mnt4_753/ | ||
cargo test --all-features | ||
test-mnt6-753: | ||
name: Test (mnt6_753/) | ||
runs-on: macos-latest | ||
needs: [directories] # Waits for the directory listing job | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Check if mnt6_753 was updated | ||
uses: dorny/[email protected] | ||
id: checkdiff | ||
with: | ||
filters: | | ||
mnt6_753_is_updated: | ||
- 'mnt6_753/**' | ||
- name: Check if dependenies are same as previous build | ||
id: depencies-not-updated | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
target | ||
key: mnt6_753-dependencies-not-updated-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') && hashFiles('**/Cargo.lock') || $(date +%s) }} | ||
Check failure on line 165 in .github/workflows/ci.yml GitHub Actions / CIInvalid workflow file
|
||
- name: Run tests | ||
if: ${{ steps.checkdiff.outputs.mnt6_753_is_updated == 'true' || steps.depencies-not-updated.outputs.depencies-not-updated == 'false' }} | ||
run: | | ||
cd mnt6_753/ | ||
cargo test --all-features | ||
docs: | ||
name: Check Documentation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Install Rust | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
components: rustfmt | ||
- name: cargo doc --all --no-deps --document-private-items --all-features | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: doc | ||
args: --all --no-deps --document-private-items --all-features | ||
check_no_std: | ||
name: Check no_std | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
- name: Install Rust | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: stable | ||
target: thumbv6m-none-eabi | ||
override: true | ||
- uses: actions/cache@v2 | ||
with: | ||
path: | | ||
~/.cargo/registry | ||
~/.cargo/git | ||
target | ||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | ||
- name: check | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: check | ||
args: --examples --workspace --exclude ark-curve-constraint-tests --target thumbv6m-none-eabi | ||
- name: build | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: build | ||
args: --workspace --exclude ark-curve-constraint-tests --target thumbv6m-none-eabi |