Skip to content

revert(reintroduce witness checks): witness perf checks complete #2816

revert(reintroduce witness checks): witness perf checks complete

revert(reintroduce witness checks): witness perf checks complete #2816

Workflow file for this run

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/tarpaulin@v0.1
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'