Files
rustlock/.github/workflows/metrics.yml
T
jory 50c5de5371
Metrics Collection / collect-metrics (push) Has been cancelled
Code Quality / quality-checks (push) Has been cancelled
Security Scan / security-audit (push) Has been cancelled
refactor(ci): streamline GitHub workflows
- remove build.yml (redundant with release.yml)
- security.yml: remove duplicate cargo deny check (advisories redundant with full check)
- metrics.yml: remove unused rustfmt/clippy components and no-op summary step
- quality.yml: remove duplicate cargo deny check (already runs in security workflow)
2026-03-17 19:52:38 +01:00

77 lines
2.1 KiB
YAML

name: Metrics Collection
on:
schedule:
- cron: '0 0 * * 1' # Weekly on Monday at midnight
workflow_dispatch:
push:
branches: [main, master]
paths:
- 'src/**'
- 'Cargo.toml'
- '.github/workflows/metrics.yml'
env:
CARGO_TERM_COLOR: always
jobs:
collect-metrics:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Generate test coverage
run: |
cargo install cargo-tarpaulin
cargo tarpaulin --out Html --out Lcov --output-dir ./coverage
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: ./coverage
retention-days: 30
- name: Count lines of code
run: |
cargo install tokei
tokei --output json > loc.json
echo "Lines of code:"
tokei --type=Rust
- name: Upload LOC metrics
uses: actions/upload-artifact@v4
with:
name: loc-metrics
path: loc.json
retention-days: 30
- name: Check compile times
run: |
echo "=== Compilation Metrics ==="
echo "Note: For accurate compile times, run: cargo clean && cargo build --timings"
echo ""
echo "To optimize compile times:"
echo "1. Check for large dependencies with: cargo tree --depth 1"
echo "2. Consider feature flag optimization"
echo "3. Review workspace structure"
- name: Dependency analysis
run: |
cargo install cargo-depgraph
cargo depgraph --all-features --dedup-transitive --format dot > deps.dot
echo "Dependency graph generated: deps.dot"
echo "Total dependencies: $(cargo tree --depth 0 | wc -l)"
- name: Upload dependency graph
uses: actions/upload-artifact@v4
with:
name: dependency-graph
path: deps.dot
retention-days: 30