name: CI
on:
push:
branches:
- master
pull_request:
schedule:
- cron: "0 12 * * *"
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Install LLVM
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 14
- uses: actions/checkout@v2
- name: Format
run: cargo fmt && git diff --exit-code
- name: Lint
run: |
rustup update
rustup component add clippy
cargo clippy -- -D warnings -D clippy::pedantic -D clippy::nursery -D clippy::expect_used -D clippy::panic -D clippy::unwrap_used
- name: Cargo sort
run: |
cargo install cargo-sort
cargo sort -c
test:
runs-on: ubuntu-latest
steps:
- name: Install LLVM
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 14
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Unit tests
run: cargo test
- name: Integration tests
run: |
cargo build --release
cd tests
./run_tests.sh