mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: run test-go-pg on macOS and Windows in regular CI (#17853)
This PR starts running test-go-pg on macOS and Windows in regular CI. Previously this suite was only run in the nightly gauntlet for 2 reasons: - it was flaky - it was slow (took 17 minutes) We've since stabilized the flakiness by switching to depot runners, using ram disks, optimizing the number of tests run in parallel, and automatically re-running failing tests. We've also [brought down](https://github.com/coder/coder/pull/17756) the time to run the suite to 9 minutes. Additionally, this PR allows test-go-pg to use cache from previous runs, which speeds it up further. The cache is only used on PRs, `main` will still run tests without it. This PR also: - removes the nightly gauntlet since all tests now run in regular CI - removes the `test-cli` job for the same reason - removes the `setup-imdisk` action which is now fully replaced by [coder/setup-ramdisk-action](https://github.com/coder/setup-ramdisk-action) - makes 2 minor changes which could be separate PRs, but I rolled them into this because they were helpful when iterating on it: - replace the `if: always()` condition on the `gen` job with a `if: ${{ !cancelled() }}` to allow the job to be cancelled. Previously the job would run to completion even if the entire workflow was cancelled. See [the GitHub docs](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions#always) for more details. - disable the recently added `TestReinitializeAgent` since it does not pass on Windows with Postgres. There's an open issue to fix it: https://github.com/coder/internal/issues/642 This PR will: - unblock https://github.com/coder/coder/issues/15109 - alleviate https://github.com/coder/internal/issues/647 I tested caching by temporarily enabling cache upload on this PR: here's [a run](https://github.com/coder/coder/actions/runs/15119046903/job/42496939341?pr=17853#step:13:1296) showing cache being used.
This commit is contained in:
@@ -8,42 +8,26 @@ inputs:
|
||||
use-preinstalled-go:
|
||||
description: "Whether to use preinstalled Go."
|
||||
default: "false"
|
||||
use-temp-cache-dirs:
|
||||
description: "Whether to use temporary GOCACHE and GOMODCACHE directories."
|
||||
default: "false"
|
||||
use-cache:
|
||||
description: "Whether to use the cache."
|
||||
default: "true"
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Override GOCACHE and GOMODCACHE
|
||||
shell: bash
|
||||
if: inputs.use-temp-cache-dirs == 'true'
|
||||
run: |
|
||||
# cd to another directory to ensure we're not inside a Go project.
|
||||
# That'd trigger Go to download the toolchain for that project.
|
||||
cd "$RUNNER_TEMP"
|
||||
# RUNNER_TEMP should be backed by a RAM disk on Windows if
|
||||
# coder/setup-ramdisk-action was used
|
||||
export GOCACHE_DIR="$RUNNER_TEMP""\go-cache"
|
||||
export GOMODCACHE_DIR="$RUNNER_TEMP""\go-mod-cache"
|
||||
export GOPATH_DIR="$RUNNER_TEMP""\go-path"
|
||||
export GOTMP_DIR="$RUNNER_TEMP""\go-tmp"
|
||||
mkdir -p "$GOCACHE_DIR"
|
||||
mkdir -p "$GOMODCACHE_DIR"
|
||||
mkdir -p "$GOPATH_DIR"
|
||||
mkdir -p "$GOTMP_DIR"
|
||||
go env -w GOCACHE="$GOCACHE_DIR"
|
||||
go env -w GOMODCACHE="$GOMODCACHE_DIR"
|
||||
go env -w GOPATH="$GOPATH_DIR"
|
||||
go env -w GOTMPDIR="$GOTMP_DIR"
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
|
||||
with:
|
||||
go-version: ${{ inputs.use-preinstalled-go == 'false' && inputs.version || '' }}
|
||||
cache: ${{ inputs.use-cache }}
|
||||
|
||||
- name: Install gotestsum
|
||||
shell: bash
|
||||
run: go install gotest.tools/gotestsum@0d9599e513d70e5792bb9334869f82f6e8b53d4d # main as of 2025-05-15
|
||||
|
||||
- name: Install mtimehash
|
||||
shell: bash
|
||||
run: go install github.com/slsyy/mtimehash/cmd/mtimehash@a6b5da4ed2c4a40e7b805534b004e9fde7b53ce0 # v1.0.0
|
||||
|
||||
# It isn't necessary that we ever do this, but it helps
|
||||
# separate the "setup" from the "run" times.
|
||||
- name: go mod download
|
||||
|
||||
Reference in New Issue
Block a user