name: Rust
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
- name: Install dependencies
env:
ACCEPT_EULA: Y
run: |
rustup override set nightly && \
# sudo -E apt-get update && \
# sudo -E dpkg --configure -a && \
# sudo -E dpkg --remove containers-common && \
# sudo -E apt-get upgrade -y && \
sudo -E apt-get install -y zlib1g-dev apt-utils && \
sudo -E apt-get install -y opt libedit-dev build-essential make && \
sudo -E apt-get install -y cmake g++ clang pkg-config jq && \
sudo -E apt-get install -y libcurl4-openssl-dev libelf-dev libdw-dev binutils-dev libiberty-dev && \
cargo install cargo-kcov && \
cargo kcov --print-install-kcov-sh | sh
- name: Run tests
run: cargo test --verbose
- name: Run kcov
run: |
REPORT=$(find ./target/debug -maxdepth 2 -regex '.+/deps/.*' -a ! -regex '.+\.\(d\|rlib\|rmeta\|so\)'); \
for file in $REPORT; do \
echo $file; \
kcov --include-pattern=vicis/src --exclude-pattern=/.cargo ./target/cov "$file"; \
done; \
bash <(curl -s https://codecov.io/bash) -s ./target/cov