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@v1 - name: Load snarkOS run: | mkdir ~/.ssh echo "${{ secrets.SNARKOS_DEPLOY_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa eval $(ssh-agent -s) ssh-add -k ~/.ssh/id_rsa - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt - name: cargo fmt --check uses: actions-rs/cargo@v1 env: CARGO_NET_GIT_FETCH_WITH_CLI: true with: command: fmt args: --all -- --check test: name: Test runs-on: ubuntu-latest env: RUSTFLAGS: -Dwarnings strategy: matrix: rust: - stable - nightly steps: - name: Checkout uses: actions/checkout@v2 - name: Load snarkOS run: | mkdir ~/.ssh echo "${{ secrets.SNARKOS_DEPLOY_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa eval $(ssh-agent -s) ssh-add -k ~/.ssh/id_rsa - name: Install Rust (${{ matrix.rust }}) uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true # - name: Check examples # uses: actions-rs/cargo@v1 # env: # CARGO_NET_GIT_FETCH_WITH_CLI: true # 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 --all --benches # if: matrix.rust == 'nightly' - name: Test uses: actions-rs/cargo@v1 with: command: test args: --release --all --no-fail-fast codecov: name: Code Coverage runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Load snarkOS run: | mkdir ~/.ssh echo "${{ secrets.SNARKOS_DEPLOY_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa eval $(ssh-agent -s) ssh-add -k ~/.ssh/id_rsa - name: Install Rust uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: rustfmt - name: Test uses: actions-rs/cargo@v1 with: command: test args: --all env: CARGO_NET_GIT_FETCH_WITH_CLI: true CARGO_INCREMENTAL: "0" - name: Install dependencies for code coverage run: | sudo apt-get update sudo apt-get -y install binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev - name: Generate coverage report run: | wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz tar xzf master.tar.gz cd kcov-master mkdir build && cd build cmake .. && make make install DESTDIR=../../kcov-build cd ../.. rm -rf kcov-master for file in target/debug/deps/*-*; do if [[ "$file" != *\.* ]]; then mkdir -p "target/cov/$(basename $file)"; ./kcov-build/usr/local/bin/kcov --exclude-pattern=/.cargo,/usr/lib --verify "target/cov/$(basename $file)" "$file"; fi done - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: github-token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}