This repository was archived by the owner on Apr 13, 2026. It is now read-only.
chore(deps): (deps): bump tempfile from 3.20.0 to 3.23.0 #197
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, develop] | |
| env: | |
| CARGO_TERM_COLOR: never | |
| TERM: dumb | |
| jobs: | |
| # Check PR titles follow conventional commits | |
| semantic-pr: | |
| if: github.event_name == 'pull_request' | |
| name: Semantic PR Title | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: amannn/action-semantic-pull-request@v6 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| types: | | |
| feat | |
| fix | |
| docs | |
| style | |
| refactor | |
| perf | |
| test | |
| build | |
| ci | |
| chore | |
| requireScope: false | |
| subjectPattern: ^(?![A-Z]).+$ | |
| subjectPatternError: | | |
| The subject "{subject}" found in the pull request title "{title}" | |
| doesn't match the configured pattern. Please ensure that the subject | |
| doesn't start with an uppercase character. | |
| # Linting and security job | |
| lint: | |
| name: Lint and Security | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: lint-${{ hashFiles('**/Cargo.toml') }} | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| - name: Run clippy | |
| run: cargo clippy --all-targets --all-features -- -D warnings | |
| - name: Install cargo-audit | |
| run: cargo install cargo-audit | |
| - name: Run security audit | |
| run: cargo audit | |
| - name: Install cargo-deny | |
| run: cargo install cargo-deny | |
| - name: Run cargo-deny checks | |
| run: cargo deny check | |
| test-and-coverage: | |
| name: Test and Coverage | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: test-${{ hashFiles('**/Cargo.toml') }} | |
| - name: Run tests with coverage | |
| run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info --fail-under-lines 79 | |
| env: | |
| CARGO_TERM_COLOR: never | |
| TERM: dumb | |
| - name: Generate HTML coverage report | |
| run: cargo llvm-cov --all-features --workspace --html | |
| env: | |
| CARGO_TERM_COLOR: never | |
| TERM: dumb | |
| - name: Generate documentation | |
| run: cargo doc --no-deps --all-features --workspace | |
| env: | |
| CARGO_TERM_COLOR: never | |
| TERM: dumb | |
| - name: Upload lcov.info as artifact | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: lcov-report | |
| path: lcov.info | |
| retention-days: 30 | |
| - name: Upload HTML coverage report as artifact | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: html-coverage-report | |
| path: target/llvm-cov/html/ | |
| retention-days: 30 | |
| - name: Upload documentation as artifact | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: rust-documentation | |
| path: target/doc/ | |
| retention-days: 30 | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| if: always() | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: lcov.info | |
| flags: rust | |
| name: rust-coverage | |
| fail_ci_if_error: false | |
| benches: | |
| name: Benchmarks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache Rust dependencies | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: bench-${{ hashFiles('**/Cargo.toml') }} | |
| - name: Run benchmarks | |
| run: cargo bench --benches --quiet | |
| env: | |
| CARGO_TERM_COLOR: never | |
| TERM: dumb | |
| # Note: Benchmark comparison removed due to cargo bench compatibility issues | |
| # For PR benchmark comparison, use the HTML reports in artifacts | |
| - name: Track benchmark performance (main/develop) | |
| if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop') | |
| uses: rhysd/github-action-benchmark@v1 | |
| with: | |
| tool: "criterion" | |
| output-file-path: "target/criterion/*/base/estimates.json" | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| auto-push: true | |
| comment-on-alert: true | |
| alert-threshold: "150%" | |
| fail-on-alert: false | |
| max-items-in-chart: 100 | |
| - name: Upload Criterion HTML reports as artifacts | |
| uses: actions/upload-artifact@v4 | |
| if: always() | |
| with: | |
| name: criterion-html-reports-${{ github.sha }} | |
| path: target/criterion/ | |
| retention-days: 30 | |
| if-no-files-found: warn | |
| - name: Comment on PR with benchmark results | |
| if: github.event_name == 'pull_request' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const comment = `## Benchmark Results | |
| Benchmarks completed for commit \`${{ github.sha }}\`. | |
| **Detailed HTML Reports**: Download the [criterion-html-reports-${{ github.sha }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) artifact and open \`target/criterion/report/index.html\` in your browser. | |
| **Performance Analysis**: Review the HTML reports to compare performance with previous runs. The reports include statistical analysis and performance trends. | |
| > **Note**: Artifacts are available for 30 days. For detailed performance comparison, download the HTML reports and review the statistical analysis.`; | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: comment | |
| }); |