mirror of
https://github.com/docker/cli.git
synced 2026-01-26 15:41:42 +03:00
`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 06914dd0ff, which attempted to
exclude the docker-trust plugin
- similar to cee9ea67fc, which made this
change for the linter.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
name: test
|
|
|
|
# Default to 'contents: read', which grants actions to read commits.
|
|
#
|
|
# If any permission is set, any permission not included in the list is
|
|
# implicitly set to "none".
|
|
#
|
|
# see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- 'master'
|
|
- '[0-9]+.[0-9]+'
|
|
- '[0-9]+.x'
|
|
tags:
|
|
- 'v*'
|
|
pull_request:
|
|
|
|
jobs:
|
|
ctn:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
-
|
|
name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
-
|
|
name: Test
|
|
uses: docker/bake-action@v6
|
|
with:
|
|
targets: test-coverage
|
|
-
|
|
name: Send to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
files: ./build/coverage/coverage.txt
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
host:
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
GOPATH: ${{ github.workspace }}
|
|
GOBIN: ${{ github.workspace }}/bin
|
|
GO111MODULE: auto
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os:
|
|
- macos-14 # macOS 14 on arm64 (Apple Silicon M1)
|
|
- macos-15-intel # macOS 15 on Intel
|
|
- macos-15 # macOS 15 on arm64 (Apple Silicon M1)
|
|
# - windows-2022 # FIXME: some tests are failing on the Windows runner, as well as on Appveyor since June 24, 2018: https://ci.appveyor.com/project/docker/cli/history
|
|
steps:
|
|
-
|
|
name: Checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
path: ${{ env.GOPATH }}/src/github.com/docker/cli
|
|
-
|
|
name: Set up Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version: "1.25.5"
|
|
-
|
|
name: Test
|
|
run: |
|
|
# run in go modules mode to prevent traversing to nested modules
|
|
ln -s vendor.mod go.mod
|
|
ln -s vendor.sum go.sum
|
|
go test -coverprofile=/tmp/coverage.txt $(go list ./... | grep -vE '^github.com/docker/cli/e2e/')
|
|
go tool cover -func=/tmp/coverage.txt
|
|
working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli
|
|
shell: bash
|
|
-
|
|
name: Send to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
files: /tmp/coverage.txt
|
|
working-directory: ${{ env.GOPATH }}/src/github.com/docker/cli
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|