Skip to content

feat: support usage as Copy On Write for any lifetime #43

feat: support usage as Copy On Write for any lifetime

feat: support usage as Copy On Write for any lifetime #43

Workflow file for this run

name: rust
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
matrix:
toolchain:
- stable
- nightly
profile:
- dev
- release
os:
- ubuntu-latest
- windows-latest
- macos-latest
features:
- ""
- "--all-features"
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{matrix.toolchain}}
- name: Show version
run: cargo version
- name: Build
run: cargo build --verbose --profile ${{matrix.profile}} ${{matrix.features}}
- name: Run tests
run: cargo test --verbose --profile ${{matrix.profile}} ${{matrix.features}}
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt
- name: Check formatting
run: cargo fmt --all --check
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- name: Check documentation (all-features)
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --no-deps --document-private-items --all-features
- name: Check documentation (minimal)
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --no-deps --document-private-items
msrv:
runs-on: ubuntu-latest
env:
rust_version: ""
steps:
- uses: actions/checkout@v3
- name: Get MSRV from Cargo
run: |
rust_version=$(grep rust-version Cargo.toml | cut -d'"' -f2)
echo "rust_version=$rust_version" >> $GITHUB_ENV
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.rust_version }}
- name: Build
run: cargo build --verbose --release --all-features
- name: Run tests
run: cargo test --verbose --release --all-features
minimal-versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: dtolnay/rust-toolchain@stable
- uses: dtolnay/rust-toolchain@nightly
- name: Resolve dependencies
run: |
cargo +nightly update -Zdirect-minimal-versions
cargo +nightly check
- name: Show dependence tree
run: cargo +stable tree --all-features
- name: Run tests
run: cargo +stable test --verbose --release --all-features
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Resolve dependencies
run: cargo generate-lockfile
- name: cargo llvm-cov
run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
- name: Upload to codecov.io
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: true