Fix the CI pipeline so it runs on the available runner #1

Merged
nexus merged 4 commits from ci/runner-label into main 2026-07-22 21:58:37 +02:00
Owner

Makes the pipeline actually run, found by pushing it and watching what happened.

Three defects, each blocking the next:

  1. Wrong runner label. The workflow asked for docker; the runner on this
    instance offers ubuntu-22.04, so every run sat in waiting with nothing to
    pick it up.
  2. No Node in the job container. container: golang:1.26 has no Node.js,
    and both checkout and setup-go are JavaScript actions — every run died
    after ten seconds with executable file `node` not found in $PATH. The job
    now uses the runner's default image and installs Go with setup-go, reading
    the version from go.mod.
  3. Nine unchecked error returns. make lint skipped golangci-lint when it
    was not installed, so the lint step had never actually run here. They are
    fixed, the linter version is pinned in the workflow and the Makefile, and
    make lint now fails with an install hint instead of quietly passing.

Verified on this branch: CI / test (push) is green, CI / image (push) is
skipped as intended — publishing only happens on main and tags.

Makes the pipeline actually run, found by pushing it and watching what happened. Three defects, each blocking the next: 1. **Wrong runner label.** The workflow asked for `docker`; the runner on this instance offers `ubuntu-22.04`, so every run sat in `waiting` with nothing to pick it up. 2. **No Node in the job container.** `container: golang:1.26` has no Node.js, and both `checkout` and `setup-go` are JavaScript actions — every run died after ten seconds with ``executable file `node` not found in $PATH``. The job now uses the runner's default image and installs Go with `setup-go`, reading the version from `go.mod`. 3. **Nine unchecked error returns.** `make lint` skipped `golangci-lint` when it was not installed, so the lint step had never actually run here. They are fixed, the linter version is pinned in the workflow and the Makefile, and `make lint` now fails with an install hint instead of quietly passing. Verified on this branch: `CI / test (push)` is green, `CI / image (push)` is skipped as intended — publishing only happens on main and tags.
Target the ubuntu-22.04 runner label
Some checks failed
CI / test (push) Failing after 23s
CI / image (push) Has been skipped
1ce74821e3
The workflow asked for a runner labelled 'docker'; the runner available on this
instance offers 'ubuntu-22.04', so every run sat in 'waiting' with nothing to
pick it up.
ci: re-run to capture logs
Some checks failed
CI / test (push) Failing after 2s
CI / image (push) Has been skipped
1256b46610
Run the tests in the runner's default image instead of golang:1.26
Some checks failed
CI / test (push) Failing after 1m27s
CI / image (push) Has been skipped
8e9fc6bc2f
checkout and setup-go are JavaScript actions and need Node.js in the job
container. The golang image carries no Node, so every run died immediately with
'executable file node not found in $PATH'.

The job now uses the runner's default image and installs Go with setup-go,
reading the version from go.mod so the toolchain is pinned in one place.
Satisfy golangci-lint and stop skipping it locally
All checks were successful
CI / test (push) Successful in 2m27s
CI / image (push) Has been skipped
CI / test (pull_request) Successful in 1m33s
CI / image (pull_request) Has been skipped
db2c519567
The lint step had never run here: make lint skipped golangci-lint when it was
not installed, so nine unchecked error returns only surfaced in CI. They are
now handled, the linter version is pinned in both places so a new release
cannot turn the pipeline red on its own, and make lint fails with an install
hint instead of quietly passing.
nexus merged commit b24b583564 into main 2026-07-22 21:58:37 +02:00
Sign in to join this conversation.
No reviewers
No labels
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
nexus/WifiPoolToMQTT!1
No description provided.