mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
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" ```
78 lines
2.3 KiB
YAML
78 lines
2.3 KiB
YAML
name: "Test Go with PostgreSQL"
|
|
description: "Run Go tests with PostgreSQL database"
|
|
|
|
inputs:
|
|
postgres-version:
|
|
description: "PostgreSQL version to use"
|
|
required: false
|
|
default: "13"
|
|
test-parallelism-packages:
|
|
description: "Number of packages to test in parallel (-p flag)"
|
|
required: false
|
|
default: "8"
|
|
test-parallelism-tests:
|
|
description: "Number of tests to run in parallel within each package (-parallel flag)"
|
|
required: false
|
|
default: "8"
|
|
race-detection:
|
|
description: "Enable race detection"
|
|
required: false
|
|
default: "false"
|
|
test-count:
|
|
description: "Number of times to run each test (empty for cached results)"
|
|
required: false
|
|
default: ""
|
|
test-packages:
|
|
description: "Packages to test (default: ./...)"
|
|
required: false
|
|
default: "./..."
|
|
embedded-pg-path:
|
|
description: "Path for embedded postgres data (Windows/macOS only)"
|
|
required: false
|
|
default: ""
|
|
embedded-pg-cache:
|
|
description: "Path for embedded postgres cache (Windows/macOS only)"
|
|
required: false
|
|
default: ""
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Start PostgreSQL Docker container (Linux)
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
env:
|
|
POSTGRES_VERSION: ${{ inputs.postgres-version }}
|
|
run: make test-postgres-docker
|
|
|
|
- name: Setup Embedded Postgres (Windows/macOS)
|
|
if: runner.os != 'Linux'
|
|
shell: bash
|
|
env:
|
|
POSTGRES_VERSION: ${{ inputs.postgres-version }}
|
|
EMBEDDED_PG_PATH: ${{ inputs.embedded-pg-path }}
|
|
EMBEDDED_PG_CACHE_DIR: ${{ inputs.embedded-pg-cache }}
|
|
run: |
|
|
go run scripts/embedded-pg/main.go -path "${EMBEDDED_PG_PATH}" -cache "${EMBEDDED_PG_CACHE_DIR}"
|
|
|
|
- name: Run tests
|
|
shell: bash
|
|
env:
|
|
TEST_NUM_PARALLEL_PACKAGES: ${{ inputs.test-parallelism-packages }}
|
|
TEST_NUM_PARALLEL_TESTS: ${{ inputs.test-parallelism-tests }}
|
|
TEST_COUNT: ${{ inputs.test-count }}
|
|
TEST_PACKAGES: ${{ inputs.test-packages }}
|
|
RACE_DETECTION: ${{ inputs.race-detection }}
|
|
TS_DEBUG_DISCO: "true"
|
|
TS_DEBUG_DERP: "true"
|
|
LC_CTYPE: "en_US.UTF-8"
|
|
LC_ALL: "en_US.UTF-8"
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
if [[ ${RACE_DETECTION} == true ]]; then
|
|
make test-race
|
|
else
|
|
make test
|
|
fi
|