Skip to content

chore(deps/actions):(deps): bump actions/checkout from 3 to 4 #79

chore(deps/actions):(deps): bump actions/checkout from 3 to 4

chore(deps/actions):(deps): bump actions/checkout from 3 to 4 #79

Workflow file for this run

name: CI
# # NOTES
#
# ## GitHub Apps
#
# To use Codecov (for uploading and analyzing code coverage), you must
# authenticate the Codecov GitHub App via https://github.com/apps/codecov.
#
# ## GitHub Actions
#
# This workflow avoids the following GitHub Actions at the moment:
# - `actions-rs/cargo`: See https://github.com/actions-rs/cargo/issues/216 (Node.js 12)
# - `actions-rs/toolchain`: See https://github.com/actions-rs/toolchain/issues/219 (Node.js 12)
# - `actions-rs/tarpaulin`: This seems to be shaky, and will sometimes fail, and sometimes work.
#
# For `actions-rs/cargo` and `actions-rs/toolchain`, we instead use
# `cargo` and `rustup` directly in the CLI instead respectively.
#
# For `actions-rs/tarpaulin`, we instead use `cargo-llvm-codecov` via
# `taiki-e/install-action@cargo-llvm-cov`.
on:
push:
branches: [ $default-branch ]
pull_request:
jobs:
build:
name: build
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
- nightly
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install ${{ matrix.toolchain }}
rustup override set ${{ matrix.toolchain }}
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: full-build-cache
- name: Build
run: cargo build --verbose
test:
name: test
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install stable
rustup override set stable
rustup component add llvm-tools-preview
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: full-build-cache
- name: Install cargo-llvm-codecov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Generate code coverage
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
- name: Upload code coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
files: lcov.info
bench:
name: bench
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install stable
rustup override set stable
- name: Install Valgrind
run: sudo apt install -y valgrind
- name: Run benchmarks
run: cargo bench --no-fail-fast
fmt:
name: rustfmt-check
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install stable
rustup override set stable
rustup component add rustfmt
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: full-build-cache
- name: Check formatting/code style
run: cargo fmt --all -- --check
clippy:
name: clippy-check
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust
run: |
rustup set profile minimal
rustup toolchain install stable
rustup override set stable
rustup component add clippy
- name: Cache dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: full-build-cache
- name: clippy
run: cargo clippy --all-features
continue-on-error: true
ci-success:
name: ci-success
if: ${{ success() }}
needs:
- build
- test
- bench
- clippy
- fmt
runs-on: ubuntu-latest
steps:
- name: ✅ CI succeeded
run: exit 0