CI has never run: the job image has no node, and the release job is red on every push #3

Closed
opened 2026-09-16 09:13:41 +00:00 by tiagoagueda · 0 comments
Owner

Every run this repository has had is a failure, and none of them reached a test.

The checkout dies before the workflow starts

.forgejo/workflows/ci.yml runs the job in python:3.14-slim-bookworm. Forgejo runs actions/checkout as JavaScript inside the job container, and that image has no node, so the run ends at the checkout step with exec: "node": executable file not found in $PATH. Not one step of the workflow after it has ever run: nothing in this repository has ever been linted or tested by CI, and the compile step corrected in #2 was never reached either.

Fix: run the job in node:22-bookworm. uv brings its own Python, so the image only has to carry Node, git and curl, and Postulo's own CI is Node for this exact reason. postulo-imap#1 is the same fault in the same words, and postulo-imap has been green since it was fixed.

The release job is red on every ordinary push

The second job in the same workflow is gated on a tag with if: startsWith(github.ref, 'refs/tags/v'), and a push to main reports a failed release beside its tests anyway — run 4 on main is one. Whatever Forgejo makes of the condition, a red mark for a job that was never meant to run on a branch is the same red as a real failure; the same arrangement with needs: ends the whole run with 'runs-on' key not defined in CI/test.

Fix: move the gate into its own workflow, triggered by tags: ["v*"] and by nothing else. A workflow an ordinary push does not trigger cannot be red on one.

Every run this repository has had is a failure, and none of them reached a test. ## The checkout dies before the workflow starts `.forgejo/workflows/ci.yml` runs the job in `python:3.14-slim-bookworm`. Forgejo runs `actions/checkout` as JavaScript *inside the job container*, and that image has no `node`, so the run ends at the checkout step with `exec: "node": executable file not found in $PATH`. Not one step of the workflow after it has ever run: nothing in this repository has ever been linted or tested by CI, and the compile step corrected in #2 was never reached either. **Fix:** run the job in `node:22-bookworm`. uv brings its own Python, so the image only has to carry Node, git and curl, and Postulo's own CI is Node for this exact reason. postulo-imap#1 is the same fault in the same words, and `postulo-imap` has been green since it was fixed. ## The release job is red on every ordinary push The second job in the same workflow is gated on a tag with `if: startsWith(github.ref, 'refs/tags/v')`, and a push to `main` reports a failed `release` beside its tests anyway — run 4 on `main` is one. Whatever Forgejo makes of the condition, a red mark for a job that was never meant to run on a branch is the same red as a real failure; the same arrangement with `needs:` ends the whole run with `'runs-on' key not defined in CI/test`. **Fix:** move the gate into its own workflow, triggered by `tags: ["v*"]` and by nothing else. A workflow an ordinary push does not trigger cannot be red on one.
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.

Dependencies

No dependencies set.

Reference
Postulo/postulo-paperless#3
No description provided.