Skip to content

ci: remove the nightly workflow - #487

Merged
TeoSlayer merged 1 commit into
mainfrom
remove-nightly-ci
Oct 1, 2026
Merged

TeoSlayer merged 1 commit into
mainfrom
remove-nightly-ci

Conversation

@TeoSlayer

Copy link
Copy Markdown
Collaborator

Removes .github/workflows/nightly.yml and the self-hosted runner it depends on.

Why

The nightly has never passed. Since it was added on 2026-05-27 there have been 138 scheduled runs: 137 failures and one cancellation. It has never cut a -nightly prerelease tag.

What fails, from the last three nights' logs:

  • Integration suite: 45–55 of about 430 tests fail per night on the self-hosted runner, mostly a different set each night (30 tests failed in all three nights, 40 in only one). Nearly all pass on retry. The errors are loopback timeouts: dial registry: dial tcp 127.0.0.1:N: i/o timeout, dashboard did not start within timeout, timed out waiting for handshake. TestDaemonShutdownStopsGoroutines failed on every retry in two of the three nights, which is enough to fail the job.
  • Full suite (-tags nightly): hits the 65-minute go test timeout every night with 324–493 of about 840 tests failed, and a different test hung at the moment of the timeout each time.

The same ./tests suite passes locally in a few minutes (go test -parallel 4 -count=1 ./pkg/... ./tests/ passed on 2026-10-01), so the workflow was reporting the state of the runner rather than the code. I did not log into the runner to find out why loopback connections time out there.

What changes

  • nightly.yml deleted.
  • .github/actionlint.yaml deleted; it only declared the pilot-nightly runner label.
  • Comments in ci.yml and release.yml that pointed at the nightly now say the integration suite runs locally.

What stays

The tests are untouched, including the 36 //go:build nightly files. Run them with go test ./tests/ and go test -tags nightly ./tests/.

After this, the ./tests integration suite runs in no CI job: PR and release CI run only the -short unit tests in ./pkg, ./cmd and ./internal.

Follow-up outside this repo

Deregister the pilot-nightly-runner self-hosted runner and delete the pilot-nightly-runner VM in vulture-vision-cloud once this is merged, so a scheduled run is not left queued with no runner.

🤖 Generated with Claude Code

The nightly suite has never passed: 138 scheduled runs since it was
added on 2026-05-27, 137 failures and one cancellation, and it has never
cut a nightly prerelease tag. On the dedicated self-hosted runner the
integration job loses 45-55 of ~430 tests per night to loopback dial and
startup timeouts (a different set each night, nearly all passing on
retry), and the nightly-tag job hits its 65-minute go test timeout every
night. The same ./tests suite passes locally in a few minutes, so the
runs were reporting the runner, not the code.

Remove nightly.yml and the actionlint config that only declared its
runner label. The tests themselves stay, including the //go:build
nightly files; run them with `go test ./tests/` and
`go test -tags nightly ./tests/`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@TeoSlayer
TeoSlayer merged commit 70fdd36 into main Oct 1, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant