Skip to content

Update all dependencies, fix clippy/tests, and repair CI #248

Update all dependencies, fix clippy/tests, and repair CI

Update all dependencies, fix clippy/tests, and repair CI #248

Workflow file for this run

name: Continuous Integration
# Runs automatically on push to main and pull requests
# Also supports manual triggering via Actions tab
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch: # Manual trigger option
jobs:
test:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
fail-fast: false
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache cargo dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
rust/target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Run unit tests
run: cargo test --workspace --lib -- --test-threads=10
- name: Run integration tests
run: cargo test --workspace --test '*' --features integration -- --test-threads=2
clippy:
name: Run clippy
runs-on: ubuntu-latest
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Cache cargo dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
rust/target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Set up Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --all --check
- name: Run clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
audit:
name: Security & Quality Audit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install cargo-deny
uses: taiki-e/install-action@cargo-deny
- name: Install jscpd
run: npm install -g jscpd
- name: Run cargo-deny
run: cargo deny check advisories
working-directory: rust
- name: Check for duplicates
run: jscpd -c .jscpd.json rust/