fix(ci): wait for quality before deploy #156

Merged
barrettruth merged 1 commit from ci/experiment-unnamed-reusable-deploy into main 2026-05-03 15:36:58 +00:00
Owner

Problem

Forgejo commit status contexts always include the workflow name. Reusable workflow jobs inherit the caller workflow name in commit statuses, and omitting name: leaves an empty prefix such as / Format. That prevents a reusable-workflow-only solution from producing mixed main contexts.

Solution

Run quality as its own pull-request and main-push workflow, producing quality / Format, quality / Lint, and quality / Test. Run deploy as a separate deploy workflow with one Deploy job. Before build/deploy, that job polls the Forgejo commit status API for the same SHA and waits until the three push quality statuses are successful; failures or timeout stop deployment.

Expected main contexts

  • quality / Format (push)
  • quality / Lint (push)
  • quality / Test (push)
  • deploy / Deploy (push)
## Problem Forgejo commit status contexts always include the workflow name. Reusable workflow jobs inherit the caller workflow name in commit statuses, and omitting `name:` leaves an empty prefix such as `/ Format`. That prevents a reusable-workflow-only solution from producing mixed main contexts. ## Solution Run `quality` as its own pull-request and main-push workflow, producing `quality / Format`, `quality / Lint`, and `quality / Test`. Run deploy as a separate `deploy` workflow with one `Deploy` job. Before build/deploy, that job polls the Forgejo commit status API for the same SHA and waits until the three push quality statuses are successful; failures or timeout stop deployment. ## Expected main contexts - `quality / Format (push)` - `quality / Lint (push)` - `quality / Test (push)` - `deploy / Deploy (push)`
test(ci): omit workflow names in actions
All checks were successful
/ Format (pull_request) Successful in 13s
/ Test (pull_request) Successful in 38s
/ Lint (pull_request) Successful in 57s
128d65e282
barrettruth force-pushed ci/experiment-unnamed-reusable-deploy from 128d65e282
All checks were successful
/ Format (pull_request) Successful in 13s
/ Test (pull_request) Successful in 38s
/ Lint (pull_request) Successful in 57s
to 14e97ee8d1
All checks were successful
/ Format (pull_request) Successful in 14s
/ Test (pull_request) Successful in 37s
/ Lint (pull_request) Successful in 1m0s
2026-05-03 15:25:16 +00:00
Compare
barrettruth force-pushed ci/experiment-unnamed-reusable-deploy from 14e97ee8d1
All checks were successful
/ Format (pull_request) Successful in 14s
/ Test (pull_request) Successful in 37s
/ Lint (pull_request) Successful in 1m0s
to 0949e8c9d9
All checks were successful
quality / Format (pull_request) Successful in 13s
quality / Test (pull_request) Successful in 41s
quality / Lint (pull_request) Successful in 1m0s
2026-05-03 15:27:02 +00:00
Compare
barrettruth changed title from test(ci): omit workflow names in actions to fix(ci): wait for quality before deploy 2026-05-03 15:27:11 +00:00
barrettruth force-pushed ci/experiment-unnamed-reusable-deploy from 0949e8c9d9
All checks were successful
quality / Format (pull_request) Successful in 13s
quality / Test (pull_request) Successful in 41s
quality / Lint (pull_request) Successful in 1m0s
to ae915ed620
All checks were successful
quality / Format (push) Successful in 14s
quality / Format (pull_request) Successful in 17s
quality / Test (push) Successful in 40s
quality / Lint (push) Successful in 1m3s
deploy / Deploy (push) Successful in 1m21s
quality / Test (pull_request) Successful in 39s
quality / Lint (pull_request) Successful in 1m1s
2026-05-03 15:29:21 +00:00
Compare
barrettruth deleted branch ci/experiment-unnamed-reusable-deploy 2026-05-03 15:36:58 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/vimdoc-language-server!156
No description provided.