Deploy for macOS arm64 and preserve file attributes (#1499) #839
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: Test coverage | |
on: | |
push: | |
branches: 'master' | |
paths-ignore: 'docs/**' | |
env: | |
RUST_BACKTRACE: 1 | |
PRUSTI_ASSERT_TIMEOUT: 60000 | |
# Disable incremental builds to reduce disk usage | |
CARGO_INCREMENTAL: 1 | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '15' | |
distribution: 'zulu' | |
- name: Set up the environment | |
run: python x.py setup | |
- name: Cache cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: "shared" | |
- name: Enable collection of source-based coverage | |
run: | | |
# The following are necessary for profiling (see https://github.com/mozilla/grcov) | |
echo "RUSTFLAGS=-Cinstrument-coverage" >> $GITHUB_ENV | |
echo "LLVM_PROFILE_FILE=${GITHUB_WORKSPACE}/target/coverage/gcov-%p-%m.profraw" >> $GITHUB_ENV | |
- name: Build with cargo | |
run: python x.py build --all | |
- name: Run cargo tests | |
run: python x.py test --all | |
- name: Rerun quick cargo tests, enabling debug dumps to cover more code | |
# Disabled because it causes CI to run out of disk space | |
if: false | |
run: python x.py test quick | |
env: | |
PRUSTI_DUMP_DEBUG_INFO: true | |
PRUSTI_DUMP_VIPER_PROGRAM: true | |
PRUSTI_IGNORE_REGIONS: true | |
- name: Check prusti-contracts | |
run: | | |
cd prusti-contracts/prusti-contracts-test/ | |
cargo build | |
- name: Report disk usage | |
run: df -h | |
- name: Collect coverage | |
run: | | |
curl -sL https://github.com/mozilla/grcov/releases/latest/download/grcov-x86_64-unknown-linux-gnu.tar.bz2 | tar jxf - | |
./grcov . --llvm --binary-path ./target/debug/ -s . -t lcov --branch --ignore-not-existing --ignore "/*" -o lcov.info | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./lcov.info |