Skip to content

ci

ci #178

Workflow file for this run

name: ci
on:
push:
branches:
- master
- ci
pull_request:
branches:
- master
jobs:
tests:
strategy:
fail-fast: false
matrix:
# Minimum Supported Rust Version
rust: [stable, nightly, 1.74.0]
on:
- { os: ubuntu-latest, target: x86_64-unknown-linux-gnu }
- { os: macos-latest, target: x86_64-apple-darwin }
- { os: windows-latest, target: x86_64-pc-windows-msvc }
runs-on: ${{ matrix.on.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
target: ${{ matrix.on.target }}
- name: Cache
uses: Swatinem/rust-cache@v2
with:
shared-key: ${{ matrix.rust }}_${{ matrix.on.os }}
- name: Build tests
run: cargo test --no-run
- name: Run tests
run: cargo test
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Run rustfmt
run: cargo fmt --all --check
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install nightly
uses: dtolnay/rust-toolchain@nightly
- name: cargo doc
env:
RUSTDOCFLAGS: --cfg docsrs -D warnings
run: cargo doc --no-deps --all-features --document-private-items
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache
uses: Swatinem/rust-cache@v2
with:
shared-key: stable_ubuntu-latest
- name: Run clippy
run: cargo clippy --all-features --all-targets --workspace -- -D warnings
codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Check coverage
uses: actions-rs/[email protected]
with:
version: 0.22.0
args: --ignore-tests --workspace -- --test-threads 1
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code_coverage_result
path: cobertura.xml
# push steps
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
if: github.event_name == 'push'
with:
files: cobertura.xml
# pull request steps
- name: Note PR number
if: github.event_name == 'pull_request'
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir -p ./pr
printf $PR_NUMBER > ./pr/pr_number
- name: Save PR number
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v3
with:
name: pr_number
path: pr/