Skip to content

Merge pull request #704 from availproject/update-docker-version #2529

Merge pull request #704 from availproject/update-docker-version

Merge pull request #704 from availproject/update-docker-version #2529

Workflow file for this run

name: Avail Light CI
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
workflow_dispatch:
jobs:
build_and_test:
runs-on: ubuntu-latest # NOTE: if disc space is low after the clean-up, switch to `self-hosted` runner
steps:
- uses: actions/checkout@v4
# Remove everything except large packages, to keep LLVM environment
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-chain: true
large-packages: false
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy, llvm-tools-preview
profile: minimal
default: true
- name: Install Protoc
uses: arduino/setup-protoc@v2
- name: Check `TOML`, `JSON`, and `MarkDown` formatting
uses: dprint/check@v2.1
- name: Check code formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: --check
- name: Check clippy lints
uses: actions-rs/cargo@v1
with:
command: clippy
args: --workspace -- -D warnings
- name: Run tests
uses: actions-rs/cargo@v1
with:
command: test
args: --workspace --benches --tests
env:
RUSTFLAGS: "-C instrument-coverage"
LLVM_PROFILE_FILE: "profile-%p-%m.profraw"
- name: Generate test code coverage report
run: |
cargo +stable install --force grcov
grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o lcov.info
- name: Upload test code coverage report to codecov.io
uses: codecov/codecov-action@v2
with:
files: lcov.info
- name: Cleanup
run: find . -name \*.profraw -type f -exec rm -f {} +