Skip to content
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

chore(deps): (deps): bump tempfile from 3.20.0 to 3.23.0

chore(deps): (deps): bump tempfile from 3.20.0 to 3.23.0 #197

Workflow file for this run

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
});