Skip to content

fix: repair fork CI and stop false-green test runs - #136

Merged
EhabY merged 1 commit into
mainfrom
chore/repair-fork-ci
Oct 15, 2026
Merged

EhabY merged 1 commit into
mainfrom
chore/repair-fork-ci

Conversation

@EhabY

@EhabY EhabY commented Oct 14, 2026 •

Copy link
Copy Markdown

Repair fork CI so it builds and tests this fork's own code, and stop the test wrapper from reporting failures as passes.

  • Upgrade AWS S3 dependencies and Staticcheck; refresh generated files and depaware inventories.
  • Make cmd/testwrapper fail on build, setup, and package failures, including tests that time out without a final event, while still retrying marked flaky tests. Each package result is printed once, and timeout panics are no longer dropped.
  • Run the Windows tests through cmd/testwrapper so marked flaky tests are retried there too.
  • Fuzz this fork's targets with ClusterFuzzLite instead of building upstream through OSS-Fuzz.
  • Fix license headers and the empty-interval connstats assertion, upgrade artifact uploads, restrict job permissions, and allow the upstream-only vm job to be skipped.
Decisions and validation
  • feature/s3/manager is only used by the upstream VM test, but upgrading it forces aws-sdk-go-v2/config v1.18 → v1.32, which ipn/store/awsstore uses at runtime. coder already builds with config v1.33.1, so its resolved version is unchanged.
  • Staticcheck v0.7.0 handles the unsigned bounds checks emitted by the current stringer, avoiding an older generator pin.
  • Fuzzing stays blocking: four targets, 300-second budget. build.sh copies GOROOT because the v2 fuzz builder patches testing internals and must match the declared Go toolchain.
  • Build failures rely on the package fail event that Go 1.24+ always emits, so there is no separate build-fail handling. The wrapper drops go test's own ok/FAIL/? lines for a package and prints its summary (with the attempt number) instead; other package output, such as init panics, is still printed.
  • go test attributes a package timeout panic to the last resumed parallel test, even one that already passed. The wrapper now prints output that arrives after a test's own --- PASS/--- SKIP line instead of buffering it into logs that are never shown.
  • The Windows job ran plain go test, so net/connstats TestConcurrent (marked flaky, net/connstats: flake in TestConcurrent tailscale/tailscale#7030) failed 2 of the last 25 Windows jobs. It never needed a retry in 75 Linux test jobs, where the wrapper already retries marked tests. Like the Linux bench all step, Windows now prints benchmark results only when a benchmark fails.
  • TestCLI runs the real wrapper against fixture modules that use the repo's go version: pass, invalid flags, compile error, flaky retry, flaky plus compile error, non-flaky failure, timeout, timeout after a parallel pass (without -v, as CI runs), and flaky plus timeout. It also checks that each package result appears once. The flaky-plus-timeout, timeout-after-parallel-pass, and single-summary checks fail without their fixes.
  • CI passes on this head; only the upstream-only vm job is skipped.

Generated with Coder Agents on behalf of @EhabY.

@EhabY
EhabY force-pushed the chore/repair-fork-ci branch from 3c86017 to 2e8d147 Compare October 14, 2026 11:29
@EhabY
EhabY added this pull request to stack #137 October 14, 2026 11:32
@EhabY
EhabY force-pushed the chore/repair-fork-ci branch 3 times, most recently from 4701f15 to ccf2c31 Compare October 14, 2026 12:19
@EhabY
EhabY removed this pull request from stack #137 October 14, 2026 13:47
@EhabY
EhabY force-pushed the chore/repair-fork-ci branch 2 times, most recently from 51d6e5e to eebe927 Compare October 14, 2026 19:50
@EhabY EhabY changed the title chore: repair fork CI compatibility fix: repair fork CI and stop false-green test runs Oct 14, 2026
@EhabY
EhabY force-pushed the chore/repair-fork-ci branch from eebe927 to a5ab5fa Compare October 14, 2026 19:57
@EhabY
EhabY marked this pull request as ready for review October 14, 2026 19:58
@EhabY
EhabY requested a review from a team as a code owner October 14, 2026 19:58
@EhabY
EhabY force-pushed the chore/repair-fork-ci branch from a5ab5fa to 828555c Compare October 14, 2026 20:31
Upgrade AWS S3 dependencies and Staticcheck so the fork builds, and
refresh generated files and depaware inventories.

Make testwrapper fail on build, setup, and package failures, including
tests that time out without a final event, while still retrying marked
flaky tests. Print each package result once, and keep timeout panics
that go test attributes to an already-passed test. Run the Windows
tests through testwrapper so marked flaky tests are retried there too.

Fuzz this fork's own targets with ClusterFuzzLite instead of building
upstream through OSS-Fuzz. Fix license headers and the empty-interval
connstats assertion, upgrade artifact uploads, restrict job
permissions, and allow the upstream-only VM job to be skipped.
@EhabY
EhabY force-pushed the chore/repair-fork-ci branch from 828555c to 2594ccf Compare October 14, 2026 21:02

@ethanndickson ethanndickson left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@EhabY
EhabY merged commit 48d8302 into main Oct 15, 2026
26 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.

2 participants