revert(reintroduce witness checks): witness perf checks complete #2816
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: | |
push: | |
branches: | |
- master | |
- ci/test | |
pull_request: | |
env: | |
PROPTEST_CASES: 100 | |
jobs: | |
update_deps: | |
name: Update dependencies | |
runs-on: ubuntu-latest | |
outputs: | |
crates-io-index-head: ${{ steps.ls-crates-io-index.outputs.head }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- id: ls-crates-io-index | |
name: Get head commit hash of crates.io registry index | |
shell: bash | |
run: | | |
commit=$( | |
git ls-remote --heads https://github.com/rust-lang/crates.io-index.git master | | |
cut -f 1 | |
) | |
echo "$commit" | |
echo "::set-output name=head::$commit" | |
- name: Cache cargo registry index | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/index | |
key: cargo-index-v2-${{ steps.ls-crates-io-index.outputs.head }} | |
restore-keys: | | |
cargo-index-v2- | |
- name: Generate Cargo.lock | |
run: cargo generate-lockfile | |
- id: cache-deps | |
name: Cache dependency crates | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/cache | |
key: cargo-deps-v2-${{ hashFiles('Cargo.lock') }} | |
- if: ${{ steps.cache-deps.outputs.cache-hit != 'true' }} | |
name: Fetch dependencies | |
run: cargo fetch --locked | |
- name: Upload Cargo.lock | |
uses: actions/upload-artifact@v2 | |
with: | |
name: lockfile | |
path: Cargo.lock | |
test: | |
name: Test | |
needs: update_deps | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
toolchain: [stable] | |
mode: ["", "--release"] | |
experimental: [false] | |
include: | |
- os: ubuntu-latest | |
toolchain: nightly | |
experimental: true | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.experimental }} | |
timeout-minutes: 120 | |
env: | |
PROPTEST_MAX_SHRINK_ITERS: 10000 | |
CARGO_INCREMENTAL: 0 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Download Cargo.lock | |
uses: actions/download-artifact@v2 | |
with: | |
name: lockfile | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
profile: minimal | |
override: true | |
# https://github.com/actions/virtual-environments/issues/895 | |
# https://github.com/actions/virtual-environments/issues/936 | |
- if: ${{ runner.os == 'Windows' }} | |
name: Clean up cargo registry files | |
run: rm -r -fo $env:UserProfile\.cargo\registry | |
- if: ${{ runner.os == 'Windows' }} | |
name: Allow long paths on Windows | |
shell: powershell | |
run: | | |
reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t REG_DWORD /d 1 /f | |
git config --system core.longpaths true | |
- name: Restore cargo registry index | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/index | |
key: cargo-index-v2-${{ needs.update_deps.outputs.crates-io-index-head }} | |
# Windows needs fallback: https://github.com/actions/cache/issues/330 | |
restore-keys: cargo-index-v2- | |
- name: Restore dependency crates | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/cache | |
key: cargo-deps-v2-${{ hashFiles('Cargo.lock') }} | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: build | |
args: --all-targets ${{ matrix.mode }} ${{ matrix.features }} --locked | |
# Note that currently all benchmarks within this workspace require it. An additional step may | |
# be needed if some future benchmarks won't require that feature. | |
- name: Build benchmarks requiring with-bench feature | |
# building when alternative profiles are set is pointless: benchmarks are always build with | |
# their own profile. | |
if: ${{ matrix.mode == '' }} | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: bench | |
args: --features with-bench --no-run --locked | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: test | |
args: ${{ matrix.mode }} ${{ matrix.features }} --locked | |
- name: Test chain-network without default features | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
env: | |
RUSTFLAGS: -D warnings | |
with: | |
command: test | |
args: >- | |
${{ matrix.mode }} --locked | |
--manifest-path chain-network/Cargo.toml --no-default-features | |
- name: Test chain-vote with p256k1 backend | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
env: | |
RUSTFLAGS: -D warnings | |
with: | |
command: test | |
args: >- | |
${{ matrix.mode }} --locked | |
--manifest-path chain-vote/Cargo.toml --features p256k1 | |
- name: Test evm support in the ledger | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
env: | |
RUSTFLAGS: -D warnings | |
with: | |
command: test | |
args: >- | |
${{ matrix.mode }} --locked | |
--manifest-path chain-impl-mockchain/Cargo.toml --features evm | |
lints: | |
name: Lints | |
needs: update_deps | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Download Cargo.lock | |
uses: actions/download-artifact@v2 | |
with: | |
name: lockfile | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
components: rustfmt, clippy | |
override: true | |
- name: Print rustfmt version | |
run: rustfmt --version | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: fmt | |
args: -- --check | |
- name: Restore cargo registry index | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/index | |
key: cargo-index-v2-${{ needs.update_deps.outputs.crates-io-index-head }} | |
- name: Restore dependency crates | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/cache | |
key: cargo-deps-v2-${{ hashFiles('Cargo.lock') }} | |
- name: Run cargo clippy | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: clippy | |
args: --all-targets --all-features -- -D warnings | |
- name: Run cargo clippy (all features) | |
uses: actions-rs/cargo@v1 | |
continue-on-error: false | |
with: | |
command: clippy | |
args: --all-features -- -D warnings | |
test_coverage: | |
name: Test Coverage | |
needs: update_deps | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Download Cargo.lock | |
uses: actions/download-artifact@v2 | |
with: | |
name: lockfile | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Restore cargo registry index | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/index | |
key: cargo-index-v2-${{ needs.update_deps.outputs.crates-io-index-head }} | |
- name: Restore dependency crates | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cargo/registry/cache | |
key: cargo-deps-v2-${{ hashFiles('Cargo.lock') }} | |
- name: Run cargo-tarpaulin | |
uses: actions-rs/[email protected] | |
with: | |
args: '--ignore-tests --out Lcov' | |
timeout: 600 | |
- name: upload to Coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: './lcov.info' |