chore(deps)(deps): bump insta from 1.43.2 to 1.46.3 #103
Workflow file for this run
This file contains hidden or 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: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main ] | |
| schedule: | |
| - cron: '0 0 * * 0' # Weekly dependency check | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| # Format and Lint Check | |
| check: | |
| name: Check & Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Format check | |
| run: cargo fmt --all -- --check | |
| - name: Clippy check | |
| run: cargo clippy --all-features --all-targets -- -D warnings | |
| - name: Documentation check | |
| run: cargo doc --no-deps --all-features | |
| # Test Matrix | |
| test: | |
| name: Test | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| rust: ["stable"] | |
| include: | |
| # Test MSRV on Linux only - Our minimum supported version | |
| - os: ubuntu-latest | |
| rust: "1.88" # MSRV - Required for Edition 2024 | |
| # Test beta on Linux only to catch upcoming issues | |
| - os: ubuntu-latest | |
| rust: "beta" | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: ${{ matrix.rust }} | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: ${{ matrix.os }}-${{ matrix.rust }} | |
| - name: Install cargo-nextest | |
| shell: bash | |
| env: | |
| RUST_VERSION: ${{ matrix.rust }} | |
| run: | | |
| if [ "$RUST_VERSION" = "1.88" ]; then | |
| cargo install cargo-nextest@0.9.114 --locked | |
| else | |
| cargo install cargo-nextest --locked | |
| fi | |
| - name: Run tests | |
| run: cargo nextest run --all-features || cargo test --all-features | |
| - name: Run doc tests | |
| run: cargo test --doc --all-features | |
| # Security Audit | |
| security: | |
| name: Security Audit | |
| runs-on: ubuntu-latest | |
| permissions: | |
| checks: write | |
| contents: read | |
| security-events: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Security audit | |
| uses: rustsec/audit-check@v2.0.0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Vulnerability scan | |
| uses: aquasecurity/trivy-action@master | |
| with: | |
| scan-type: 'fs' | |
| scan-ref: '.' | |
| format: 'sarif' | |
| output: 'trivy-results.sarif' | |
| - name: Upload Trivy scan results | |
| uses: github/codeql-action/upload-sarif@v4 | |
| if: always() && hashFiles('trivy-results.sarif') != '' | |
| with: | |
| sarif_file: 'trivy-results.sarif' | |
| # Coverage | |
| coverage: | |
| name: Code Coverage | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Install cargo-llvm-cov | |
| run: cargo install cargo-llvm-cov --locked | |
| - name: Generate coverage | |
| run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info | |
| - name: Upload to codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: lcov.info | |
| fail_ci_if_error: false | |
| verbose: true | |
| # Benchmarks | |
| benchmark: | |
| name: Performance Benchmarks | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Run benchmarks | |
| run: cargo bench --bench validation_bench || true | |
| # Integration Tests | |
| integration: | |
| name: Integration Tests | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build binary | |
| run: cargo build --release | |
| - name: Test installation | |
| run: | | |
| # Test binary works | |
| ./target/release/ferrous-forge --version | |
| # Store the binary path | |
| FERROUS_FORGE_BIN="$PWD/target/release/ferrous-forge" | |
| # Test init in clean environment | |
| mkdir -p /tmp/test-ferrous-forge | |
| cd /tmp/test-ferrous-forge | |
| export HOME=/tmp/test-ferrous-forge | |
| # Set up rustup for the test environment | |
| rustup default stable | |
| # Run init | |
| "$FERROUS_FORGE_BIN" init --force | |
| # Test project creation | |
| cargo new test-project | |
| cd test-project | |
| # Verify standards are applied (we use 2021 edition now for compatibility) | |
| grep -q 'edition = "202[14]"' Cargo.toml | |
| test -f clippy.toml || echo "clippy.toml not found, continuing" | |
| # Test validation | |
| cargo check | |
| # Build verification (just verify it builds on the CI platform) | |
| build-verification: | |
| name: Build Verification | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build release binary | |
| run: cargo build --release | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ferrous-forge-linux-x86_64 | |
| path: target/release/ferrous-forge | |
| # Documentation | |
| docs: | |
| name: Documentation | |
| runs-on: ubuntu-latest | |
| if: github.ref == 'refs/heads/main' | |
| permissions: | |
| contents: write | |
| pages: write | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| - name: Build documentation | |
| run: cargo doc --no-deps --all-features | |
| - name: Deploy to GitHub Pages | |
| uses: peaceiris/actions-gh-pages@v3 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: ./target/doc | |
| destination_dir: api |