TEST-INFRA: [ci-pipeline-design] Simplify the status-check job #1956

Open
opened 2026-04-03 00:23:39 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: chore/ci-pipeline-design-simplify-status-check-job
  • Commit Message: chore(ci): remove redundant status-check job and rely on native workflow failure propagation
  • Milestone: v3.8.0
  • Parent Epic: #1678

Background and Context

The current CI pipeline in .forgejo/workflows/ci.yml contains a status-check job that manually inspects the result of each preceding job using if: always() conditions and explicit result checks (e.g., needs.<job>.result == 'success'). This pattern is unnecessary boilerplate: Forgejo/GitHub Actions natively fails a workflow when any required job fails, provided the dependent job uses the needs keyword without an if: always() override.

Removing this job simplifies the pipeline, reduces maintenance burden, and makes failure propagation more idiomatic and reliable.

Current Behavior

The status-check job explicitly checks the result of each preceding job and fails if any of them did not succeed. This adds an extra layer of indirection that duplicates what the workflow engine already does natively.

Expected Behavior

The CI pipeline should fail automatically when any required job fails, without a dedicated status-check job. Any job that depends on the results of other jobs should use needs to declare those dependencies, and the workflow engine will handle failure propagation.

Acceptance Criteria

  • The status-check job is removed from .forgejo/workflows/ci.yml.
  • The CI pipeline correctly reports failures from any of the required jobs without a dedicated aggregation job.
  • All existing CI jobs that were previously listed under status-check's needs are still required to pass for the pipeline to be considered successful (e.g., via branch protection rules or a final job that needs all of them).

Supporting Information

  • Parent Epic: #1678 (CI Execution Time Optimization)
  • Related: [ci-pipeline-design] issue cluster

Subtasks

  • Remove the status-check job from .forgejo/workflows/ci.yml
  • Verify that all previously required jobs are still enforced (e.g., via branch protection or a minimal aggregation step if strictly needed)
  • Ensure that the CI pipeline fails as expected when a required job fails
  • Update features/ci_workflow_validation.feature to reflect the removal of status-check
  • Run nox (all default sessions), fix any errors
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

  • The status-check job is removed from .forgejo/workflows/ci.yml
  • The CI pipeline correctly reports failures from any of the required jobs
  • features/ci_workflow_validation.feature is updated to reflect the change
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done
  • All nox stages pass
  • Coverage >= 97%

Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

## Metadata - **Branch**: `chore/ci-pipeline-design-simplify-status-check-job` - **Commit Message**: `chore(ci): remove redundant status-check job and rely on native workflow failure propagation` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Background and Context The current CI pipeline in `.forgejo/workflows/ci.yml` contains a `status-check` job that manually inspects the result of each preceding job using `if: always()` conditions and explicit result checks (e.g., `needs.<job>.result == 'success'`). This pattern is unnecessary boilerplate: Forgejo/GitHub Actions natively fails a workflow when any required job fails, provided the dependent job uses the `needs` keyword without an `if: always()` override. Removing this job simplifies the pipeline, reduces maintenance burden, and makes failure propagation more idiomatic and reliable. ## Current Behavior The `status-check` job explicitly checks the result of each preceding job and fails if any of them did not succeed. This adds an extra layer of indirection that duplicates what the workflow engine already does natively. ## Expected Behavior The CI pipeline should fail automatically when any required job fails, without a dedicated `status-check` job. Any job that depends on the results of other jobs should use `needs` to declare those dependencies, and the workflow engine will handle failure propagation. ## Acceptance Criteria - The `status-check` job is removed from `.forgejo/workflows/ci.yml`. - The CI pipeline correctly reports failures from any of the required jobs without a dedicated aggregation job. - All existing CI jobs that were previously listed under `status-check`'s `needs` are still required to pass for the pipeline to be considered successful (e.g., via branch protection rules or a final job that `needs` all of them). ## Supporting Information - Parent Epic: #1678 (CI Execution Time Optimization) - Related: `[ci-pipeline-design]` issue cluster ## Subtasks - [ ] Remove the `status-check` job from `.forgejo/workflows/ci.yml` - [ ] Verify that all previously required jobs are still enforced (e.g., via branch protection or a minimal aggregation step if strictly needed) - [ ] Ensure that the CI pipeline fails as expected when a required job fails - [ ] Update `features/ci_workflow_validation.feature` to reflect the removal of `status-check` - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done - [ ] The `status-check` job is removed from `.forgejo/workflows/ci.yml` - [ ] The CI pipeline correctly reports failures from any of the required jobs - [ ] `features/ci_workflow_validation.feature` is updated to reflect the change - [ ] A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation - [ ] The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly - [ ] The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-03 00:23:49 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • MoSCoW: MoSCoW/Could Have — CI/test infrastructure improvement.

Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

Issue triaged by project owner: - **State**: Verified - **MoSCoW**: MoSCoW/Could Have — CI/test infrastructure improvement. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
freemo removed this from the v3.8.0 milestone 2026-04-07 01:31:50 +00:00
Sign in to join this conversation.
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.

Reference
cleveragents/cleveragents-core#1956
No description provided.