Skip to content

Commit

Permalink
Add CI
Browse files Browse the repository at this point in the history
  • Loading branch information
smessmer committed May 29, 2023
1 parent f7f4c49 commit 6c566bf
Showing 1 changed file with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: CI

on:
- push
- pull_request

env:
CARGO_TERM_COLOR: always

jobs:
test:
name: build_test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
command: ["build", "test"]
profile: ["", "--release"]
features: ["", "--no-default-features", "--all-features"]
toolchain: ["stable", "nightly", "1.65"]
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
default: true
- uses: actions-rs/cargo@v1
with:
command: ${{ matrix.command }}
args: ${{ matrix.features }} ${{ matrix.profile }}
clippy_check:
name: Linter (clippy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
default: true
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features --all-targets -- -D warnings
code_format:
name: Code Formatter (rustfmt)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
default: true
- uses: mbrobbel/rustfmt-check@0.3.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
sync_readme:
name: Sync README.md (cargo sync-readme)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: cargo install cargo-rdme
- run: ./gen_readme.sh
# Fail job if gen_readme.sh introduced changes. If this fails, then we need to run gen_readme.sh locally and add it to the commit.
- run: git diff --exit-code
dead_doc_links:
name: Find dead doc links
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
default: true
- run: RUSTDOCFLAGS="-Dwarnings" cargo doc
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
default: true
- uses: actions-rs/cargo@v1
with:
command: test
args: --all-features --no-fail-fast
env:
# Setup taken from https://github.com/actions-rs/grcov/tree/d9881ad44979aa34f846a82abb764b2b8cfbd715
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'
- id: coverage
uses: actions-rs/grcov@v0.1
- uses: codecov/codecov-action@v3
with:
#token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
files: ${{ steps.coverage.outputs.report }}
fail_ci_if_error: true
verbose: true

0 comments on commit 6c566bf

Please sign in to comment.