Concurrency 3
Closed
BN
3mo ago+15012+15012+01234567890123456789012345678901234567890123456789-227-227-012345678901234567890123456789
Summary by cubic
Adds full support for GitHub Actions concurrency: (workflow and job level) with queuing, cancellation, and pending states. Also introduces strict conformance tooling and property-test profiles in CI.
-
New Features
- Parse and enforce
concurrencygroups withsingle|maxqueues andcancel-in-progress(workflow, job, and reusable JobSet). - Server control plane implements pending queues, promotion, cancellation, and empty-group runtime failure; supports matrix and multi-job runs.
- Runner handles
JobCancellationwith graceful cancel + hard kill deadline; cancelled steps log the standard error line and conclude as cancelled. - Protocol/client: add
ExecutionStatus::Pending, workflowinputsinWorkflowSubmission, and job-level concurrency fields;aksh-runner-clientsupports--input. - CI: add nightly “intensive” property-test schedule and a
profileinput for fast vs intensive; PRs use the fast profile. - Conformance tooling: strict log/step comparator, matrix harness, and capture scripts with updated docs and artifacts.
- Parse and enforce
-
Bug Fixes
- Use the official message type string
"JobCancellation"on the wire and match byjobId; align cancellation timing with the official runner. - Normalize number stringification so whole numbers render without a “.0” suffix in expressions/matrix contexts.
- Reject empty concurrency groups at evaluation/runtime to match GitHub behavior.
- Add
indexmapto support stable map ordering in parser/server.
- Use the official message type string