Skip to content

Commit

Permalink
Add CI.
Browse files Browse the repository at this point in the history
Add all the ci files. Clippy is disabled. Code coverage is generated but needs
maintainer's intervention to give upload access to codecov.
  • Loading branch information
rajarshimaitra committed Feb 13, 2024
1 parent 768ba64 commit 5b0a13f
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 0 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
on:
push:
branches:
- master
pull_request:

name: build

jobs:

build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
rust:
- stable
- nightly
features:
- default
steps:
- name: checkout
uses: actions/checkout@v3
- name: Generate cache key
run: echo "${{ matrix.rust }} ${{ matrix.features }}" | tee .cache_key
- name: cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('.cache_key') }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- name: Set default toolchain
run: rustup default ${{ matrix.rust }}
- name: Set profile
run: rustup set profile minimal
- name: Update toolchain
run: rustup update
- name: Build
run: cargo build --features ${{ matrix.features }}
31 changes: 31 additions & 0 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
on:
push:
branches:
- master
pull_request:

name: lint

jobs:

fmt:
name: rust fmt
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set default toolchain
run: rustup default nightly
- name: Set profile
run: rustup set profile minimal
- name: Add rustfmt
run: rustup component add rustfmt
- name: Add clippy
run: rustup component add clippy
- name: Update toolchain
run: rustup update
- name: Check fmt
run: cargo fmt --all -- --check
- name: Clippy
#TODO: enable clippy when all clippy warnings are fixed.
#run: cargo clippy --all-targets --all-features -- -D warnings
42 changes: 42 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
on:
push:
branches:
- master
pull_request:

name: test

jobs:
test_with_codecov:
name: Run tests with coverage reporting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set default toolchain
run: rustup default nightly
- name: Set profile
run: rustup set profile minimal

# Pin grcov to v0.8.2 because of build failure at 0.8.3
- name: Install grcov
run: cargo install grcov --force --version 0.8.2

# Tests are run with code coverage support
- name: Run cargo test
env:
CARGO_INCREMENTAL: '0'
RUSTFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off'
RUSTDOCFLAGS: '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off'
run: cargo test -- --nocapture
- id: coverage
name: Generate coverage
uses: actions-rs/[email protected]

# Upload coverage report
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
file: ${{ steps.coverage.outputs.report }}
directory: ./coverage/reports/

0 comments on commit 5b0a13f

Please sign in to comment.