Commit Graph
5 Commits
Author SHA1 Message Date
Ethan f422ac89cc ci: extract go-test-failure-report composite action (#25670)
The Go test jobs in `ci.yaml` each had ~30 lines of inline shell that
wrapped `gotestsum` with a PATH shim to capture JSON, then ran
`gotestsummary` and `upload-artifact` to publish a failure report. Three
jobs carried three near-identical copies.

This change replaces the three inline blocks with a single composite
action at `.github/actions/go-test-failure-report/` that runs the same
`gotestsummary` invocation, writes the same markdown to
`GITHUB_STEP_SUMMARY`, and uploads the same NDJSON artifact. The PATH
shim is gone; gotestsum's native `GOTESTSUM_JSONFILE` env variable is
used instead, plumbed through the `test-go-pg` composite.

`test-go-pg` gains three optional inputs:

- `gotestsum-json-file` — explicit JSON file path (or `default` for
`${RUNNER_TEMP}/go-test.json`)
- `run-regex` — passed to `go test -run`
- `test-shuffle` — passed to `go test -shuffle`

All three have safe defaults so existing callers are unaffected.

No observable change in CI behavior: the three existing test-go-pg jobs
continue to emit the same JSON, render the same failure summary, and
upload the same artifact.

Stacked under #25667, which uses the new composite and inputs to power a
new flake-detector workflow.
2026-05-28 00:16:46 +10:00
Spike Curtis 5745ff7912 test: log DERP debug in CI (#23041)
related to: https://github.com/coder/internal/issues/1387

Sometimes our tests using DERP flake like the above, but we have no information at the DERP layer about why. This enables verbose DERP logging in CI.

Logs are kinda spammy, but most tests do not force DERP and so only use it for discovery (disco).

A test like TestWorkspaceAgentListeningPorts/OK_BlockDirect drops around 50 DERP packets e.g.

```
    t.go:111: 2026-03-13 15:20:52.201 [debu]  agent.net.tailnet.net.wgengine: magicsock: got derp-999 packet: "\x04\x00\x00\x00C}\xe0\xb9\x00\x00\x00\x00\x00\x00\x00\x00}\xae;l\xd9Hk8\xa8l\x1cK\xedO{狦)\x18NIw\xc4k\xd2-\x19\xbf\xfb\xdd\x17\xa9b\xac\xfd#\xf7\xcaC\xbe\vq(u=\xa7\x16\xe9\x9aLjS\x1fXL\x19y\xf4\x1dE%\xb3\xff\x9d:8\xa9\x95X\xfe\xf8\x95\x7f\x9dv$\f\xf4\xbe"
    t.go:111: 2026-03-13 15:20:52.201 [debu]  agent.net.tailnet.net.wgengine: magicsock: got derp-999 packet: "\x04\x00\x00\x00C}\xe0\xb9\x01\x00\x00\x00\x00\x00\x00\x00\x05x\xb6RD;\xb4\x80\xb6\x0f\xf6KŠc\xfb1\xbd\x06\xb70K3\x97`\x8d\xd2\x14\xed\xc5\xd6\xc6\xcaV\xbf\x878\xb2Ƥ\xf0\xd5\xf7\xc0\x1b\x9f\x04Y\x03\x17\xd4\x06\xee\xb2G\r){\x9f\xde\xe0(\xb5N\xfejR_\xf6q\xa4\xfaT\x9a\xd8\xcbk\xba\x16K"
    t.go:111: 2026-03-13 15:20:52.201 [debu]  agent.net.tailnet.net.wgengine: magicsock: got derp-999 packet: "\x04\x00\x00\x00C}\xe0\xb9\x02\x00\x00\x00\x00\x00\x00\x00\x1e\x93a\x15\xfev\x81'\xa9?\xe8nR\xce<\x91\x86\xcau@\xb9\xcfɩ\xef\xd1眓\x95\xf3*X^7\x99\x88\xb0|\x8cS\xe4@[\x16\xda\xca\xd4\xd9\x1dP\xd0\xfe\xd9r\x8c\xfcp~dP\xfaK\xe0\xf9y\xb2\x11\x15\xfe\xdcx鷽\xdeF\xf7\x92\xe8"

```
2026-03-13 12:50:39 -04:00
Mathias Fredriksson a48e4a43e2 fix(Makefile): align test-race with CI configuration (#22727)
Follow-up to #22705 (pre-commit/pre-push hooks).

Unifies `test` and `test-race` into the same structure and lets CI call
`make test-race` instead of reproducing the gotestsum command.

**Parallelism**: Extracted from `GOTEST_FLAGS` into
`TEST_PARALLEL_PACKAGES`
/ `TEST_PARALLEL_TESTS` (default 8x8). `test-race` overrides to 4x4 via
target-specific Make variables. `TEST_NUM_PARALLEL_PACKAGES` and
`TEST_NUM_PARALLEL_TESTS` env vars continue to work for both targets.

**GOTEST_FLAGS**: Changed from simply-expanded (`:=`) to
recursively-expanded
(`=`) so target-specific overrides take effect at recipe time.

**CI**: `.github/actions/test-go-pg/action.yaml` now calls `make
test-race`
/ `make test` instead of hand-rolling the gotestsum command, eliminating
drift between local and CI configurations.

Refs #22705
2026-03-09 10:39:13 +00:00
Danny Kopping 7d558e76e9 fix: make make test runnable again (#21251)
Signed-off-by: Danny Kopping <danny@coder.com>
2026-01-13 10:36:06 +00:00
Danny Kopping 84b7a0364d chore: abstract pg test logic and double runner sizes (#21091)
This PR does two things, both in service of helping to (hopefully!)
speed up CI:

1. abstracts the parallelism logic into a common action and has all
PG-related jobs use it
2. doubles runner sizes from [8->16 CPUs & 32->64GiB
RAM](https://depot.dev/docs/github-actions/runner-types)* and
concomitantly increases parallelism

I only focused on the PG-related jobs since they are generally slowest &
most RAM-intensive.

[<img width="2011" height="460" alt="image"
src="https://github.com/user-attachments/assets/c38ec3fc-dd93-4753-8df3-f22dfe54a3f7"
/>](https://app.datadoghq.com/ci/pipelines/health?query=%40git.repository.id_v2%3Agithub.com%2Fcoder%2Fcoder%20-%40git.is_default_branch%3Atrue&fromUser=true&group=ci-cost&sort=-billableTime&sp=%5B%7B%22p%22%3A%7B%22fingerprint%22%3A%22pVB6pq7htXrn%22%2C%22env%22%3A%22none%22%7D%2C%22i%22%3A%22ci-health-pipeline-panel%22%7D%5D&start=1762245172958&end=1764837172958&paused=false)

_* `test-go-race-pg` doubles from 16->32 CPUs & 64->128GiB RAM and
likewise for the Windows runners; MacOS runners have [only one
size](https://depot.dev/docs/github-actions/runner-types#macos-runners)_

_**NOTE:** don't use the speed of the PG-related jobs in this PR's CI
run as indicative. Tests run outside `main` may use cache, so the speed
may seem artificially low._

---------

Signed-off-by: Danny Kopping <danny@coder.com>
2025-12-11 10:12:47 +00:00