mirror of
https://github.com/tailscale/tailscale.git
synced 2025-06-21 07:38:38 +00:00
.github/workflows: shard the Windows builder
It's one of the slower ones, so split it up into chunks. Updates tailscale/corp#28679 Change-Id: I16a5ba667678bf238c84417a51dda61baefbecf7 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
5a52f80c4c
commit
9af42f425c
21
.github/workflows/test.yml
vendored
21
.github/workflows/test.yml
vendored
@ -210,6 +210,17 @@ jobs:
|
||||
windows:
|
||||
runs-on: windows-2022
|
||||
needs: gomod-cache
|
||||
name: Windows (${{ matrix.name || matrix.shard}})
|
||||
strategy:
|
||||
fail-fast: false # don't abort the entire matrix if one element fails
|
||||
matrix:
|
||||
include:
|
||||
- key: "win-bench"
|
||||
name: "benchmarks"
|
||||
- key: "win-shard-1-2"
|
||||
shard: "1/2"
|
||||
- key: "win-shard-2-2"
|
||||
shard: "2/2"
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
@ -237,14 +248,16 @@ jobs:
|
||||
~\AppData\Local\go-build
|
||||
# The -2- here should be incremented when the scheme of data to be
|
||||
# cached changes (e.g. path above changes).
|
||||
key: ${{ github.job }}-${{ runner.os }}-go-2-${{ hashFiles('**/go.sum') }}-${{ github.run_id }}
|
||||
key: ${{ github.job }}-${{ matrix.key }}-go-2-${{ hashFiles('**/go.sum') }}-${{ github.run_id }}
|
||||
restore-keys: |
|
||||
${{ github.job }}-${{ runner.os }}-go-2-${{ hashFiles('**/go.sum') }}
|
||||
${{ github.job }}-${{ runner.os }}-go-2-
|
||||
${{ github.job }}-${{ matrix.key }}-go-2-${{ hashFiles('**/go.sum') }}
|
||||
${{ github.job }}-${{ matrix.key }}-go-2-
|
||||
- name: test
|
||||
if: matrix.key != 'win-bench' # skip on bench builder
|
||||
working-directory: src
|
||||
run: go run ./cmd/testwrapper ./...
|
||||
run: go run ./cmd/testwrapper sharded:${{ matrix.shard }}
|
||||
- name: bench all
|
||||
if: matrix.key == 'win-bench'
|
||||
working-directory: src
|
||||
# Don't use -bench=. -benchtime=1x.
|
||||
# Somewhere in the layers (powershell?)
|
||||
|
@ -213,6 +213,16 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
// As a special case, if the packages looks like "sharded:1/2" then shell out to
|
||||
// ./tool/listpkgs to cut up the package list pieces for each sharded builder.
|
||||
if nOfM, ok := strings.CutPrefix(packages[0], "sharded:"); ok && len(packages) == 1 {
|
||||
out, err := exec.Command("go", "run", "tailscale.com/tool/listpkgs", "-shard", nOfM, "./...").Output()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to list packages for sharded test: %v", err)
|
||||
}
|
||||
packages = strings.Split(strings.TrimSpace(string(out)), "\n")
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
type nextRun struct {
|
||||
tests []*packageTests
|
||||
|
Loading…
x
Reference in New Issue
Block a user