name: CI
on:
pull_request:
push:
branches: [main]
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
CI: 1
RUST_BACKTRACE: short
RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10
jobs:
test:
name: test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
- run: cargo test --all
- name: "Test with Windows 10+ feature"
if: matrix.os == 'windows-latest'
run: cargo test --all --features win10plus
- run: cargo run --example uptime
- name: Test in OpenBSD
if: matrix.os == 'ubuntu-latest'
uses: vmactions/openbsd-vm@ac794a54cc49eef689bb2d9dff6ba77d35483029
with:
usesh: true
prepare: |
pkg_add rust
run: |
cargo test --all
cargo run --example uptime
test-nightly:
name: Test on Nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@nightly
with:
components: rust-src
targets: armv7-unknown-linux-musleabihf
- name: Test
run: cargo test --all
- name: Check with newer MUSL
run: |
# Testing with time64 enabled in libc.
export RUST_LIBC_UNSTABLE_MUSL_V1_2_3=1
cargo check --target armv7-unknown-linux-musleabihf -Zbuild-std=core,alloc,std
check_fmt_and_docs:
name: Checking fmt and docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: fmt
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all --all-targets --all-features -- -D warnings
- name: Docs
run: cargo doc