ci: only run gorelease check on latest versions of Go
Also tidy up use of go generate to declare a go:generate directive that
runs go generate for the .github/workflows package (that is otherwise
not found by ./... from the root).
Change-Id: I6cae310b78f9cc17f84942298c53000c7dea7812
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/6221
Reviewed-by: Paul Jolly <paul@myitcv.org.uk>
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c25a349..4a281b5 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -29,14 +29,13 @@
restore-keys: ${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Generate
if: matrix.go-version == '1.14.3' && matrix.os != 'windows-latest'
- run: |-
- go generate ./...
- go generate ./.github/workflows
+ run: go generate ./...
- name: Test
run: go test ./...
- name: Test with -race
run: go test -race ./...
- name: gorelease check
+ if: matrix.go-version == '1.14.3' || matrix.go-version == '1.13.x'
run: go run golang.org/x/exp/cmd/gorelease
- name: Check that git is clean post generate and tests
run: test -z "$(git status --porcelain)" || (git status; git diff; false)
diff --git a/.github/workflows/test_dispatch.yml b/.github/workflows/test_dispatch.yml
index 857ecc1..de3525e 100644
--- a/.github/workflows/test_dispatch.yml
+++ b/.github/workflows/test_dispatch.yml
@@ -34,14 +34,13 @@
restore-keys: ${{ runner.os }}-${{ matrix.go-version }}-go-
- name: Generate
if: matrix.go-version == '1.14.3' && matrix.os != 'windows-latest'
- run: |-
- go generate ./...
- go generate ./.github/workflows
+ run: go generate ./...
- name: Test
run: go test ./...
- name: Test with -race
run: go test -race ./...
- name: gorelease check
+ if: matrix.go-version == '1.14.3' || matrix.go-version == '1.13.x'
run: go run golang.org/x/exp/cmd/gorelease
- name: Check that git is clean post generate and tests
run: test -z "$(git status --porcelain)" || (git status; git diff; false)
diff --git a/gen.go b/gen.go
new file mode 100644
index 0000000..cf14afe
--- /dev/null
+++ b/gen.go
@@ -0,0 +1,3 @@
+package cue
+
+//go:generate go generate ./.github/workflows
diff --git a/internal/ci/workflows.cue b/internal/ci/workflows.cue
index 35d3d20..edf99d7 100644
--- a/internal/ci/workflows.cue
+++ b/internal/ci/workflows.cue
@@ -32,11 +32,13 @@
#job: (json.#Workflow.jobs & {x: _}).x
#step: ((#job & {steps: _}).steps & [_])[0]
+#latestGo: "1.14.3"
+
#testStrategy: {
"fail-fast": false
matrix: {
// Use a stable version of 1.14.x for go generate
- "go-version": ["1.12.x", "1.13.x", "1.14.3"]
+ "go-version": ["1.12.x", "1.13.x", #latestGo]
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
}
}
@@ -67,13 +69,10 @@
#goGenerate: #step & {
name: "Generate"
- run: """
- go generate ./...
- go generate ./.github/workflows
- """
+ run: "go generate ./..."
// The Go version corresponds to the precise 1.14.x version specified in
// the matrix. Skip windows for now until we work out why re-gen is flaky
- if: "matrix.go-version == '1.14.3' && matrix.os != 'windows-latest'"
+ if: "matrix.go-version == '\(#latestGo)' && matrix.os != 'windows-latest'"
}
#goTest: #step & {
@@ -89,6 +88,9 @@
#goReleaseCheck: #step & {
name: "gorelease check"
run: "go run golang.org/x/exp/cmd/gorelease"
+ // Only run on 1.13.x and latest Go for now. Bug with Go 1.12.x means
+ // this check fails
+ if: "matrix.go-version == '\(#latestGo)' || matrix.go-version == '1.13.x'"
}
#checkGitClean: #step & {