Skip to content

ci: add coverage gate, master branch tests, timeouts, cleanup#1964

Open
junhinhow wants to merge 1 commit intoBelfrySCAD:masterfrom
junhinhow:ci/improve-pipeline
Open

ci: add coverage gate, master branch tests, timeouts, cleanup#1964
junhinhow wants to merge 1 commit intoBelfrySCAD:masterfrom
junhinhow:ci/improve-pipeline

Conversation

@junhinhow
Copy link
Copy Markdown

Summary

  • Run checks on master push (not just PRs): detects post-merge breakage that PR-only testing misses
  • New FuncCoverage job: runs func_coverage.py on every PR/push and fails if function test coverage drops below 99%, preventing silent test regression
  • Timeouts on all jobs: prevents hung workflows from consuming runner minutes indefinitely
    • Regressions: 20min, FuncCoverage: 5min, CheckTutorials: 30min, CheckDocs: 45min
    • gen_docs/gen_tutorials: 30min, version_stamp/weekly_release: 10min
  • Remove FooTest debug step from gen_tutorials.yml (leftover echo $OPENSCADPATH)
  • Quiet wget (-q flag) to reduce log noise during OpenSCAD download

Changes per file

File Changes
main.yml Add push: branches: [master] trigger, new FuncCoverage job, timeouts on all 4 jobs, quiet wget
gen_tutorials.yml Remove FooTest step, add timeout
gen_docs.yml Add timeout
version_stamp.yml Add timeout
weekly_release.yml Add timeout

Test plan

  • YAML syntax validated
  • FuncCoverage job logic tested locally — correctly parses coverage percentage and fails below threshold
  • No changes to existing test/doc validation logic
  • All existing jobs preserved with identical behavior (plus timeouts)

🤖 Generated with Claude Code

CI pipeline changes:

main.yml:
- Add push trigger on master (in addition to PRs) to detect post-merge
  breakages not caught during PR testing
- New FuncCoverage job: runs func_coverage.py and fails if coverage
  drops below 99%, preventing silent test regressions
- Add timeout-minutes to all jobs (Regressions=20, FuncCoverage=5,
  CheckTutorials=30, CheckDocs=45)
- Quiet wget (-q) to reduce log noise

gen_tutorials.yml:
- Remove FooTest step (leftover debug that only echoed OPENSCADPATH)
- Add timeout-minutes: 30

gen_docs.yml:
- Add timeout-minutes: 30

version_stamp.yml:
- Add timeout-minutes: 10

weekly_release.yml:
- Add timeout-minutes: 10
@junhinhow junhinhow force-pushed the ci/improve-pipeline branch from 4fb188e to cb3d648 Compare April 6, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant