feat: enhance CI configuration with additional jobs for MSRV, Cargo Deny, Semver Check, Miri, Minimal Versions, and Typos
This commit is contained in:
@@ -110,3 +110,100 @@ jobs:
|
|||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: lcov.info
|
files: lcov.info
|
||||||
fail_ci_if_error: true
|
fail_ci_if_error: true
|
||||||
|
|
||||||
|
msrv:
|
||||||
|
name: MSRV (1.88)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Install Rust 1.88
|
||||||
|
run: |
|
||||||
|
rustup override set 1.88
|
||||||
|
rustup update 1.88
|
||||||
|
- uses: Swatinem/rust-cache@v2
|
||||||
|
- name: Check compilation
|
||||||
|
run: cargo check --all-features
|
||||||
|
|
||||||
|
deny:
|
||||||
|
name: Cargo Deny
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||||
|
|
||||||
|
semver:
|
||||||
|
name: Semver Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Install Rust
|
||||||
|
run: |
|
||||||
|
rustup override set stable
|
||||||
|
rustup update stable
|
||||||
|
- uses: Swatinem/rust-cache@v2
|
||||||
|
- name: Install cargo-semver-checks
|
||||||
|
uses: taiki-e/install-action@cargo-semver-checks
|
||||||
|
- name: Check semver
|
||||||
|
run: cargo semver-checks check-release
|
||||||
|
|
||||||
|
miri:
|
||||||
|
name: Miri
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Install Rust nightly and Miri
|
||||||
|
run: |
|
||||||
|
rustup toolchain install nightly --component miri
|
||||||
|
rustup override set nightly
|
||||||
|
- uses: Swatinem/rust-cache@v2
|
||||||
|
- name: Setup Miri
|
||||||
|
run: cargo miri setup
|
||||||
|
- name: Run tests under Miri
|
||||||
|
run: cargo miri test
|
||||||
|
env:
|
||||||
|
MIRIFLAGS: -Zmiri-strict-provenance
|
||||||
|
|
||||||
|
minimal-versions:
|
||||||
|
name: Minimal Versions
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Install Rust nightly
|
||||||
|
run: |
|
||||||
|
rustup toolchain install nightly
|
||||||
|
rustup override set nightly
|
||||||
|
- uses: Swatinem/rust-cache@v2
|
||||||
|
- name: Generate minimal version lockfile
|
||||||
|
run: cargo +nightly -Z minimal-versions update
|
||||||
|
- name: Install Rust stable
|
||||||
|
run: |
|
||||||
|
rustup override set stable
|
||||||
|
rustup update stable
|
||||||
|
- name: Check with minimal versions
|
||||||
|
run: cargo check --all-features --locked
|
||||||
|
|
||||||
|
cross-platform:
|
||||||
|
name: ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [windows-latest, macos-latest]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- name: Install Rust
|
||||||
|
run: |
|
||||||
|
rustup override set stable
|
||||||
|
rustup update stable
|
||||||
|
- uses: Swatinem/rust-cache@v2
|
||||||
|
- name: Check compilation
|
||||||
|
run: cargo check --all-features
|
||||||
|
- name: Run tests
|
||||||
|
run: cargo test --all-features
|
||||||
|
|
||||||
|
typos:
|
||||||
|
name: Typos
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6
|
||||||
|
- uses: crate-ci/typos@v1
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
name = "optimize"
|
name = "optimize"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
rust-version = "1.88"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
authors = ["Manuel Raimann <raimannma@outlook.de"]
|
authors = ["Manuel Raimann <raimannma@outlook.de"]
|
||||||
description = "A Rust library for optimization algorithms."
|
description = "A Rust library for optimization algorithms."
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
[advisories]
|
||||||
|
version = 2
|
||||||
|
db-path = "~/.cargo/advisory-db"
|
||||||
|
ignore = []
|
||||||
|
|
||||||
|
[licenses]
|
||||||
|
version = 2
|
||||||
|
allow = [
|
||||||
|
"MIT",
|
||||||
|
"Apache-2.0",
|
||||||
|
"Apache-2.0 WITH LLVM-exception",
|
||||||
|
"BSD-2-Clause",
|
||||||
|
"Unicode-3.0",
|
||||||
|
]
|
||||||
|
confidence-threshold = 0.8
|
||||||
|
|
||||||
|
[bans]
|
||||||
|
multiple-versions = "warn"
|
||||||
|
wildcards = "allow"
|
||||||
|
|
||||||
|
[sources]
|
||||||
|
unknown-registry = "warn"
|
||||||
|
unknown-git = "warn"
|
||||||
|
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
|
||||||
Reference in New Issue
Block a user