diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml deleted file mode 100644 index 26ed562..0000000 --- a/.github/workflows/CI.yml +++ /dev/null @@ -1,166 +0,0 @@ -name: CI - -permissions: - contents: read - -on: - pull_request: - push: - branches: - - master - -env: - RUST_BACKTRACE: 1 - CARGO_TERM_COLOR: always - CLICOLOR: 1 - -concurrency: - group: "${{ github.workflow }}-${{ github.ref }}" - cancel-in-progress: true - -jobs: - ci: - permissions: - contents: none - name: CI - needs: [test, msrv, docs, rustfmt, clippy] - runs-on: ubuntu-latest - steps: - - name: Done - run: exit 0 - test: - name: Test - strategy: - matrix: - os: ["ubuntu-latest", "windows-latest", "macos-14"] - rust: ["nightly"] - continue-on-error: ${{ matrix.rust != 'nightly' }} - runs-on: ${{ matrix.os }} - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: ${{ matrix.rust }} - - uses: Swatinem/rust-cache@v2 - - name: Build - run: cargo test --workspace --no-run - - name: Default features - run: cargo test --workspace - - name: All features - run: cargo test --workspace --all-features - - name: No-default features - run: cargo test --workspace --no-default-features - msrv: - name: "Check MSRV" - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - - uses: Swatinem/rust-cache@v2 - - uses: taiki-e/install-action@cargo-hack - - name: Default features - run: cargo hack check --locked --rust-version --ignore-private --workspace --all-targets - - name: All features - run: cargo hack check --locked --rust-version --ignore-private --workspace --all-targets --all-features - - name: No-default features - run: cargo hack check --locked --rust-version --ignore-private --workspace --all-targets --no-default-features - lockfile: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - - uses: Swatinem/rust-cache@v2 - - name: "Is lockfile updated?" - run: cargo fetch --locked - docs: - name: Docs - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - - uses: Swatinem/rust-cache@v2 - - name: Check documentation - env: - RUSTDOCFLAGS: -D warnings - run: cargo doc --workspace --all-features --no-deps --document-private-items - rustfmt: - name: rustfmt - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - # Not MSRV because its harder to jump between versions and people are - # more likely to have nightly - toolchain: nightly - components: rustfmt - - uses: Swatinem/rust-cache@v2 - - name: Check formatting - run: cargo fmt --all -- --check - clippy: - name: clippy - runs-on: ubuntu-latest - permissions: - security-events: write # to upload sarif results - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: "1.78.0-nightly" # nightly - components: clippy - - uses: Swatinem/rust-cache@v2 - - name: Install SARIF tools - run: cargo install clippy-sarif --version 0.3.4 --locked # Held back due to msrv - - name: Install SARIF tools - run: cargo install sarif-fmt --version 0.3.4 --locked # Held back due to msrv - - name: Check - run: > - cargo clippy --workspace --all-features --all-targets --message-format=json -- -D warnings --allow deprecated - | clippy-sarif - | tee clippy-results.sarif - | sarif-fmt - continue-on-error: true - - name: Upload - uses: github/codeql-action/upload-sarif@v3 - with: - sarif_file: clippy-results.sarif - wait-for-processing: true - - name: Report status - run: cargo clippy --workspace --all-features --all-targets -- -D warnings --allow deprecated - coverage: - name: Coverage - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - name: Install Rust - uses: dtolnay/rust-toolchain@nightly - with: - toolchain: nightly - - uses: Swatinem/rust-cache@v2 - - name: Install cargo-tarpaulin - run: cargo install cargo-tarpaulin - - name: Gather coverage - run: cargo tarpaulin --output-dir coverage --out lcov - - name: Publish to Coveralls - uses: coverallsapp/github-action@master - with: - github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/cargo-clippy.yml b/.github/workflows/cargo-clippy.yml new file mode 100644 index 0000000..ca32325 --- /dev/null +++ b/.github/workflows/cargo-clippy.yml @@ -0,0 +1,17 @@ +clippy: + name: clippy check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + components: clippy + override: true + - uses: LoliGothick/clippy-check@master + with: + token: ${{ secrets.GITHUB_TOKEN }} + allow: > + nonstandard_macro_braces + mutex_atomic + deny: warnings diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml deleted file mode 100644 index 3086695..0000000 --- a/.github/workflows/security-audit.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Security audit - -permissions: - contents: read - -on: - pull_request: - paths: - - "**/Cargo.toml" - - "**/Cargo.lock" - push: - branches: - - main - -env: - RUST_BACKTRACE: 1 - CARGO_TERM_COLOR: always - CLICOLOR: 1 - -concurrency: - group: "${{ github.workflow }}-${{ github.ref }}" - cancel-in-progress: true - -jobs: - security_audit: - permissions: - issues: write # to create issues (actions-rs/audit-check) - checks: write # to create check (actions-rs/audit-check) - runs-on: ubuntu-latest - # Prevent sudden announcement of a new advisory from failing ci: - continue-on-error: true - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - uses: actions-rs/audit-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - cargo_deny: - permissions: - issues: write # to create issues (actions-rs/audit-check) - checks: write # to create check (actions-rs/audit-check) - runs-on: ubuntu-latest - strategy: - matrix: - checks: - - bans licenses sources - steps: - - uses: actions/checkout@v4 - - uses: EmbarkStudios/cargo-deny-action@v1 - with: - command: check ${{ matrix.checks }} - rust-version: stable