Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita0e229a

Browse files
authored
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 2reasons:- 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, andautomatically re-running failing tests. We've also [broughtdown](#17756) the time to run thesuite to 9 minutes. Additionally, this PR allows test-go-pg to use cachefrom previous runs, which speeds it up further. The cache is only usedon 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 theminto 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 jobwould run to completion even if the entire workflow was cancelled. See[the GitHubdocs](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 notpass on Windows with Postgres. There's an open issue to fix it:coder/internal#642This PR will:- unblock#15109- alleviatecoder/internal#647I tested caching by temporarily enabling cache upload on this PR: here's[arun](https://github.com/coder/coder/actions/runs/15119046903/job/42496939341?pr=17853#step:13:1296)showing cache being used.
1 parentf825477 commita0e229a

File tree

6 files changed

+247
-303
lines changed

6 files changed

+247
-303
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name:"Setup Go Paths"
2+
description:Overrides Go paths like GOCACHE and GOMODCACHE to use temporary directories.
3+
outputs:
4+
gocache:
5+
description:"Value of GOCACHE"
6+
value:${{ steps.paths.outputs.gocache }}
7+
gomodcache:
8+
description:"Value of GOMODCACHE"
9+
value:${{ steps.paths.outputs.gomodcache }}
10+
gopath:
11+
description:"Value of GOPATH"
12+
value:${{ steps.paths.outputs.gopath }}
13+
gotmp:
14+
description:"Value of GOTMPDIR"
15+
value:${{ steps.paths.outputs.gotmp }}
16+
cached-dirs:
17+
description:"Go directories that should be cached between CI runs"
18+
value:${{ steps.paths.outputs.cached-dirs }}
19+
runs:
20+
using:"composite"
21+
steps:
22+
-name:Override Go paths
23+
id:paths
24+
uses:actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea# v7
25+
with:
26+
script:|
27+
const path = require('path');
28+
29+
// RUNNER_TEMP should be backed by a RAM disk on Windows if
30+
// coder/setup-ramdisk-action was used
31+
const runnerTemp = process.env.RUNNER_TEMP;
32+
const gocacheDir = path.join(runnerTemp, 'go-cache');
33+
const gomodcacheDir = path.join(runnerTemp, 'go-mod-cache');
34+
const gopathDir = path.join(runnerTemp, 'go-path');
35+
const gotmpDir = path.join(runnerTemp, 'go-tmp');
36+
37+
core.exportVariable('GOCACHE', gocacheDir);
38+
core.exportVariable('GOMODCACHE', gomodcacheDir);
39+
core.exportVariable('GOPATH', gopathDir);
40+
core.exportVariable('GOTMPDIR', gotmpDir);
41+
42+
core.setOutput('gocache', gocacheDir);
43+
core.setOutput('gomodcache', gomodcacheDir);
44+
core.setOutput('gopath', gopathDir);
45+
core.setOutput('gotmp', gotmpDir);
46+
47+
const cachedDirs = `${gocacheDir}\n${gomodcacheDir}`;
48+
core.setOutput('cached-dirs', cachedDirs);
49+
50+
-name:Create directories
51+
shell:bash
52+
run:|
53+
set -e
54+
mkdir -p "$GOCACHE"
55+
mkdir -p "$GOMODCACHE"
56+
mkdir -p "$GOPATH"
57+
mkdir -p "$GOTMPDIR"

‎.github/actions/setup-go/action.yaml

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,26 @@ inputs:
88
use-preinstalled-go:
99
description:"Whether to use preinstalled Go."
1010
default:"false"
11-
use-temp-cache-dirs:
12-
description:"Whether to usetemporary GOCACHE and GOMODCACHE directories."
13-
default:"false"
11+
use-cache:
12+
description:"Whether to usethe cache."
13+
default:"true"
1414
runs:
1515
using:"composite"
1616
steps:
17-
-name:Override GOCACHE and GOMODCACHE
18-
shell:bash
19-
if:inputs.use-temp-cache-dirs == 'true'
20-
run:|
21-
# cd to another directory to ensure we're not inside a Go project.
22-
# That'd trigger Go to download the toolchain for that project.
23-
cd "$RUNNER_TEMP"
24-
# RUNNER_TEMP should be backed by a RAM disk on Windows if
25-
# coder/setup-ramdisk-action was used
26-
export GOCACHE_DIR="$RUNNER_TEMP""\go-cache"
27-
export GOMODCACHE_DIR="$RUNNER_TEMP""\go-mod-cache"
28-
export GOPATH_DIR="$RUNNER_TEMP""\go-path"
29-
export GOTMP_DIR="$RUNNER_TEMP""\go-tmp"
30-
mkdir -p "$GOCACHE_DIR"
31-
mkdir -p "$GOMODCACHE_DIR"
32-
mkdir -p "$GOPATH_DIR"
33-
mkdir -p "$GOTMP_DIR"
34-
go env -w GOCACHE="$GOCACHE_DIR"
35-
go env -w GOMODCACHE="$GOMODCACHE_DIR"
36-
go env -w GOPATH="$GOPATH_DIR"
37-
go env -w GOTMPDIR="$GOTMP_DIR"
3817
-name:Setup Go
3918
uses:actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32# v5.0.2
4019
with:
4120
go-version:${{ inputs.use-preinstalled-go == 'false' && inputs.version || '' }}
21+
cache:${{ inputs.use-cache }}
4222

4323
-name:Install gotestsum
4424
shell:bash
4525
run:go install gotest.tools/gotestsum@0d9599e513d70e5792bb9334869f82f6e8b53d4d# main as of 2025-05-15
4626

27+
-name:Install mtimehash
28+
shell:bash
29+
run:go install github.com/slsyy/mtimehash/cmd/mtimehash@a6b5da4ed2c4a40e7b805534b004e9fde7b53ce0# v1.0.0
30+
4731
# It isn't necessary that we ever do this, but it helps
4832
# separate the "setup" from the "run" times.
4933
-name:go mod download

‎.github/actions/setup-imdisk/action.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp