Add crate_type workflow #56
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: "CI" | |
on: | |
merge_group: | |
workflow_dispatch: | |
workflow_call: | |
pull_request: | |
push: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
cargo-build: | |
name: Cargo Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: cargo build | |
run: cargo b --workspace --all-targets --all-features | |
cargo-fmt: | |
name: Cargo fmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: rustfmt | |
- name: Rustfmt Check | |
run: cargo fmt --all --check | |
cargo-clippy: | |
name: Cargo clippy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy | |
- name: Clippy Check | |
run: cargo clippy --workspace --all-targets --all-features -- -Dwarnings | |
cargo-doc: | |
name: Cargo doc | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Cargo doc test | |
run: cargo doc --workspace --all-features | |
check-if-lib: | |
uses: ./.github/workflows/crate_type.yaml | |
cargo-test-doc: | |
needs: check-if-lib | |
if: ${{ needs.check-if-lib.outputs.is_lib == 'true' }} | |
name: Cargo test doc | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Cargo test doc | |
run: cargo test --doc --workspace --all-features | |
cargo-next-test: | |
name: Cargo test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Install cargo-nextest | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-nextest | |
- name: Cargo test | |
run: cargo nextest run --workspace --all-targets --all-features | |
cargo-miri-test: | |
name: Cargo miri | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Setup miri | |
run: | | |
rustup toolchain install nightly --component miri; | |
rustup override set nightly; | |
cargo miri setup; | |
- name: Test with Miri | |
run: cargo miri test --workspace --all-targets --all-features | |
typos-cli: | |
name: typos | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install Typos | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: typos-cli | |
- name: run typos | |
run: typos | |
taplo-toml-fmt: | |
name: taplo fmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: Install Taplo | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: taplo-cli | |
- name: Run Taplo | |
id: taplo | |
run: taplo fmt --check --diff | |
markdownlint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- name: markdownlint-cli2-action | |
uses: DavidAnson/markdownlint-cli2-action@v16 | |
with: | |
globs: '**/*.md' | |
yamlfmt: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Repository | |
uses: actions/checkout@v4 | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: stable | |
cache: false | |
- name: Install yamlfmt | |
run: go install github.com/google/yamlfmt/cmd/yamlfmt@latest | |
- name: Run yamlfmt | |
run: yamlfmt --lint . | |
cargo-deny: | |
uses: ./.github/workflows/cargo_deny.yaml | |
check-msrv: | |
uses: ./.github/workflows/check_msrv.yaml |