Merge pull request #6 from mindeng/main #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: rust | |
on: | |
push: | |
# Ignore bors branches, since they are covered by `clippy_bors.yml` | |
branches: | |
- main | |
# Don't run Clippy tests, when only textfiles were modified | |
paths-ignore: | |
- 'README' | |
- 'COPYRIGHT' | |
- 'LICENSE-*' | |
- '**.md' | |
- '**.txt' | |
pull_request: | |
# Don't run Clippy tests, when only textfiles were modified | |
paths-ignore: | |
- 'README' | |
- 'COPYRIGHT' | |
- 'LICENSE-*' | |
- '**.md' | |
- '**.txt' | |
env: | |
CARGO_TERM_COLOR: always | |
RUSTFLAGS: -Dwarnings | |
RUST_BACKTRACE: 1 | |
nightly: nightly | |
minrust: 1.72 | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
targets: x86_64-pc-windows-gnu | |
components: clippy, rustfmt | |
- name: Run checks | |
env: | |
CLIPPY_OPTS: --all-targets | |
run: | | |
cargo fmt --check | |
cargo clippy $CLIPPY_OPTS | |
cargo clippy --target x86_64-pc-windows-gnu $CLIPPY_OPTS | |
unit-tests: | |
name: unit tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
rust: | |
- nightly | |
os: | |
- macos-latest | |
- ubuntu-latest | |
# see https://github.com/al8n/fmmap/issues/1 | |
# - windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install latest nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
components: rustfmt, clippy | |
- uses: Swatinem/rust-cache@v1 | |
- uses: actions/cache@v2 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: test fmmap all features | |
run: cargo test --all-features | |
working-directory: fmmap-rs | |
coverage: | |
name: cargo tarpaulin | |
runs-on: ubuntu-latest | |
needs: | |
- check | |
- unit-tests | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install latest nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
- uses: actions-rs/install@v0.1 | |
with: | |
crate: cargo-tarpaulin | |
version: latest | |
- name: Cache ~/.cargo | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cargo | |
key: ${{ runner.os }}-coverage-dotcargo | |
- name: Cache cargo build | |
uses: actions/cache@v3 | |
with: | |
path: target | |
key: ${{ runner.os }}-coverage-cargo-build-target | |
- name: Change dir | |
run: cd fmmap-rs | |
- name: Run tarpaulin | |
uses: actions-rs/cargo@v1 | |
with: | |
command: tarpaulin | |
args: --run-types all-targets --workspace --out xml | |
- name: Upload to codecov.io | |
uses: codecov/codecov-action@v3.1.1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
docs: | |
name: docs | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.nightly }} | |
override: true | |
- uses: Swatinem/rust-cache@v1 | |
- name: "doc --lib --all-features" | |
run: cargo doc --lib --no-deps --all-features --document-private-items | |
env: | |
RUSTFLAGS: --cfg docsrs | |
RUSTDOCFLAGS: --cfg docsrs -Dwarnings | |
working-directory: fmmap-rs |