mirror of
https://github.com/coder/coder.git
synced 2026-11-02 21:50:08 +08:00
Closes https://github.com/coder/internal/issues/1619 Closes ENG-3039 Closes https://github.com/coder/internal/issues/1002 Closes ENG-3018 The `test-go-pg` Go cache grew until the post-job save could no longer complete within the job timeout, cancelling the job on every `main` run. Depot runners already provide remote Go build caching via [`GOCACHEPROG`](https://depot.dev/docs/cache/integrations/gocache), which writes every object it serves into `GOCACHE` and never evicts, so persisting `GOCACHE` with `actions/cache` on top just carries an ever-growing directory forward. #20510 removed the custom build cache steps for exactly this reason, and the `go-cache` action introduced in #25727 unintentionally reinstated them. The action is now removed entirely, along with its module cache persistence: a full cache miss plus cold `go mod download` on a Depot runner takes about 10 seconds, faster than any warm `actions/cache` restore of the module cache was. `setup-go-paths` is kept, as it points `GOCACHE` and friends at the Windows RAM disk, but its now-unused caching-related outputs are removed.
33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
name: "Setup Go Paths"
|
|
description: Overrides Go paths like GOCACHE and GOMODCACHE to use temporary directories.
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Override Go paths
|
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
|
with:
|
|
script: |
|
|
const path = require('path');
|
|
|
|
// RUNNER_TEMP should be backed by a RAM disk on Windows if
|
|
// coder/setup-ramdisk-action was used
|
|
const runnerTemp = process.env.RUNNER_TEMP;
|
|
const gocacheDir = path.join(runnerTemp, 'go-cache');
|
|
const gomodcacheDir = path.join(runnerTemp, 'go-mod-cache');
|
|
const gopathDir = path.join(runnerTemp, 'go-path');
|
|
const gotmpDir = path.join(runnerTemp, 'go-tmp');
|
|
|
|
core.exportVariable('GOCACHE', gocacheDir);
|
|
core.exportVariable('GOMODCACHE', gomodcacheDir);
|
|
core.exportVariable('GOPATH', gopathDir);
|
|
core.exportVariable('GOTMPDIR', gotmpDir);
|
|
|
|
- name: Create directories
|
|
shell: bash
|
|
run: |
|
|
set -e
|
|
mkdir -p "$GOCACHE"
|
|
mkdir -p "$GOMODCACHE"
|
|
mkdir -p "$GOPATH"
|
|
mkdir -p "$GOTMPDIR"
|