Skip to content

Commit 14cffdb

Browse files
committed
gha: run unit-tests in go modules mode, to prevent traversing nested modules
`go list` expects a module to be valid, which means that dependencies must either be vendored, or downloaded in the module cache. However, when working in GOPATH mode, `go.mod` files are ignored, which means that `go list` will traverse subdirectories, even if those are a separate module, and those modules may not have their dependencies present. In our case, we try to exclude those modules from paths to be tested, but do so based on the _result_ of `go list`, which already produces errors before we filter. These errors do not impact out tests, as we don't run tests for those paths, but do produce noise in CI, which can be confusing; go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '/vendor/|/e2e/|/cmd/docker-trust') cmd/docker-trust/internal/trust/trust.go:28:2: cannot find package "github.com/theupdateframework/notary" in any of: /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary (vendor tree) /usr/local/go/src/github.com/theupdateframework/notary (from $GOROOT) /go/src/github.com/theupdateframework/notary (from $GOPATH) cmd/docker-trust/internal/trust/trust.go:29:2: cannot find package "github.com/theupdateframework/notary/client" in any of: /go/src/github.com/docker/cli/vendor/github.com/theupdateframework/notary/client (vendor tree) /usr/local/go/src/github.com/theupdateframework/notary/client (from $GOROOT) /go/src/github.com/theupdateframework/notary/client (from $GOPATH) This patch adds a symlink for `go.mod` and `go.sum`, so that listing the packages happens in go modules mode, and doesn't traverse to other modules, such as `cmd/docker-trust`. - updates 06914dd, which attempted to exclude the docker-trust plugin - similar to cee9ea6, which made this change for the linter. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 874b831 commit 14cffdb

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

.github/workflows/test.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ jobs:
7171
-
7272
name: Test
7373
run: |
74-
go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '/vendor/|/e2e/|/cmd/docker-trust')
74+
# run in go modules mode to prevent traversing to nested modules
75+
ln -s vendor.mod go.mod
76+
ln -s vendor.sum go.sum
77+
go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '^github.com/docker/cli/e2e/')
7578
go tool cover -func=/tmp/coverage.txt
7679
working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli
7780
shell: bash

0 commit comments

Comments
 (0)