Skip to content

Merge pull request #62 from lambdalisue/dependabot/cargo/metrics-0.24.0 #187

Merge pull request #62 from lambdalisue/dependabot/cargo/metrics-0.24.0

Merge pull request #62 from lambdalisue/dependabot/cargo/metrics-0.24.0 #187

Workflow file for this run

name: Test
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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') }}
- name: Update local toolchain
run: |
rustup update
rustup component add rustfmt
- name: Toolchain info
run: |
rustc --version
cargo --version --verbose
cargo fmt --version
- name: Format
run: |
cargo fmt --check
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- 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') }}
- name: Update local toolchain
run: |
rustup update
rustup component add clippy
- name: Toolchain info
run: |
rustc --version
cargo --version --verbose
cargo clippy --version
- name: Clippy check
run: |
cargo clippy --all-features --all-targets
- name: Clippy check (use-gauge-on-cpu-seconds-total)
run: |
cargo clippy --features use-gauge-on-cpu-seconds-total --all-targets
test:
strategy:
matrix:
runner: [ubuntu-latest, macos-latest, windows-latest]
env:
RUNNER: ${{ matrix.runner }}
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- 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') }}
- name: Update local toolchain
run: |
rustup update
rustup component add llvm-tools-preview
cargo install cargo-llvm-cov
- name: Toolchain info
run: |
rustc --version
cargo --version --verbose
cargo llvm-cov --version
- name: Test
run: |
cargo llvm-cov --all-features --lcov --output-path lcov.info
- name: Test (use-gauge-on-cpu-seconds-total)
run: |
cargo llvm-cov --features use-gauge-on-cpu-seconds-total --lcov --output-path lcov.use-gauge-on-cpu-seconds-total.info
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: lcov.info,lcov.use-gauge-on-cpu-seconds-total.info
env_vars: RUNNER
test-cross-platform:
strategy:
matrix:
# don't forget to update current os versions, see https://github.com/cross-platform-actions/action?tab=readme-ov-file#supported-platforms
include:
- { os: freebsd, version: "14.1", prepare_cmd: "sudo pkg install -y rust cmake rust-bindgen-cli" }
# 7.6 is not supported by [email protected] yet
- { os: openbsd, version: "7.5", prepare_cmd: "sudo pkg_add rust cmake llvm%17; export LIBCLANG_PATH=/usr/local/llvm17/lib" }
fail-fast: false
runs-on: ubuntu-latest
name: "test (${{matrix.os}}-${{matrix.version}})"
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{matrix.os}}-${{matrix.version}}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Cross-platform test
uses: cross-platform-actions/[email protected]
with:
operating_system: ${{matrix.os}}
version: "${{matrix.version}}"
run: |
${{matrix.prepare_cmd}}
cargo test -- --nocapture