name: con-art-rust
on:
push:
branches:
- main
pull_request:
branches: [ main ]
schedule:
- cron: '0 10 * * 3'
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
name: Setup toolchain
with:
toolchain: nightly
override: true
components: rustfmt, clippy
- uses: actions-rs/cargo@v1
name: Check
with:
command: clippy
args: -- -D warnings
fmt:
needs: check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
name: Setup toolchain
with:
toolchain: nightly
override: true
components: rustfmt, clippy
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
name: Format check
test:
needs: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
name: Setup toolchain
with:
toolchain: nightly
override: true
- name: Run cargo-tarpaulin
uses: actions-rs/tarpaulin@v0.1
with:
version: '0.15.0'
args: '-- --test-threads 1'
- name: Upload to codecov.io
uses: codecov/codecov-action@v1
with:
files: ./target/tarpaulin/cobertura.xml,./cobertura.xml
sans:
needs: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
name: Setup toolchain
with:
toolchain: nightly
override: true
components: rust-src
- run: sudo ln -s /usr/bin/llvm-symbolizer-6.0 /usr/bin/llvm-symbolizer
- run: >
env ASAN_OPTIONS="detect_odr_violation=0" RUSTFLAGS="-Z sanitizer=address"
cargo test -Zbuild-std --target x86_64-unknown-linux-gnu --lib
- run: >
env ASAN_OPTIONS="detect_odr_violation=0" RUSTFLAGS="-Z sanitizer=memory"
cargo test -Zbuild-std --target x86_64-unknown-linux-gnu --lib