ci: improve CI workflow#46
Conversation
Code Review ✅ Approved 3 resolved / 3 findingsEnhances the CI workflow with explicit permissions, concurrency controls, code coverage, and benchmark regression detection. Resolved previous issues regarding failure masking, incorrect baseline keying, and faulty benchmark comparison ordering. ✅ 3 resolved✅ Bug: Regression check overwrites baseline before comparing, never detects regressions
✅ Bug: tee masks benchmark/test failures (pipefail not set)
✅ Edge Case: Benchmark baseline is keyed per-ref, so PRs never compare against main
Was this helpful? React with 👍 / 👎 | Gitar |
Summary
Improves the GitHub Actions CI workflow with explicit permissions, concurrency controls, faster linting, additional build coverage, code-coverage reporting, and automated benchmark regression detection.
Changes
permissionsto resolve CodeQL "Workflow does not contain permissions" alerts.concurrencyconfig so stale runs for the same branch/PR are cancelled automatically.brew install swiftformat(SwiftFormat is preinstalled on macOS runners)..swiftformat.cache.OpenTDFKitCLIso the CLI is verified in CI.--enable-code-coverage.llvm-cov export.scripts/parse_benchmarks.py) that extracts metrics from benchmark logs.Verification
swift testpasses locally.swiftformat --swiftversion 6.2 .is clean.Notes
actions/checkout@v4(and other v4 actions) is a GitHub-side transition; newer action major versions are not yet available. The workflow will continue to run because GitHub is forcing those actions onto Node.js 24 runners.CODECOV_TOKENsecret for the repository; if it is not configured, the upload step is allowed to fail gracefully.