Skip to content

Create pull_request_template.md. #368

Create pull_request_template.md.

Create pull_request_template.md. #368

Workflow file for this run

name: Tests and Lints
on:
pull_request:
push:
env:
RUSTFLAGS: -Dwarnings
RUSTDOCFLAGS: -Dwarnings
jobs:
rust_check:
name: Rust check
runs-on: ubuntu-latest
strategy:
matrix:
all_features: ["", "--all-features"]
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: cargo check
run: cargo check --bins --tests --lib ${{ matrix.all_features }}
rust_check_other_platforms:
name: Rust check
runs-on: ${{ matrix.platform }}
needs: ["rust_check", "rust_format"]
strategy:
matrix:
platform: [macOS-latest, windows-latest]
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: cargo check
run: cargo check --bins --tests --lib --all-features
rust_format:
name: Rust format
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: rustfmt
- name: cargo format
uses: actions-rust-lang/rustfmt@v1
rust_lint:
name: Rust lint
runs-on: ubuntu-latest
needs: ["rust_check", "rust_format"]
strategy:
fail-fast: true
matrix:
toolchain: [null, "stable", "beta", "nightly"]
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
components: clippy
toolchain: ${{matrix.toolchain}}
- name: cargo clippy
run: cargo clippy --bins --tests --lib --all-features
rust_test:
name: Rust test
runs-on: ubuntu-latest
needs: ["rust_check", "rust_format"]
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: cargo test
run: cargo test --all-features
rust_bench:
name: Rust check and lint benchmarks
runs-on: ubuntu-latest
needs: ["rust_check", "rust_format"]
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: clippy
- name: cargo check
run: cargo check --all-features --benches
- name: cargo clippy
run: cargo clippy --all-features --benches
rust_doc:
name: Rust doc
runs-on: ubuntu-latest
needs: ["rust_check", "rust_format"]
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: cargo doc
run: cargo doc --all-features
check_sync_readme:
needs: ["rust_check", "rust_format"]
name: Check sync readme
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- name: Install cargo-sync-readme
run: cargo install cargo-sync-readme
- name: Sync readme check
run: cargo sync-readme --check
check_cli:
needs: ["rust_check", "rust_format"]
name: Check CLI
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- name: CLI
uses: GuillaumeFalourd/[email protected]
with:
command_line: cargo run -- p = 2\; p + 3
contains: 5
expected_result: PASSED
coveralls_io:
needs: [rust_test]
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Install cargo-tarpaulin
run: cargo install cargo-tarpaulin
- name: Coverage Report with tarpaulin
run: cargo tarpaulin --all-features --out Lcov --tests --doc -- --test-threads 1
- name: Upload Coverage
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./lcov.info