diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df8ac7d84..666ca7b78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -195,7 +195,7 @@ jobs: uses: golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a # v9 with: # If you change this, make sure to also update scripts/golangci-lint-shim.sh - version: v2.12.2 + version: v2.15.0 upload-coverage: # List all jobs that produce coverage files needs: [unit-tests, integration-tests] diff --git a/pkg/commands/oscommands/pipeline_test.go b/pkg/commands/oscommands/pipeline_test.go index a14902cf4..fdf8b9475 100644 --- a/pkg/commands/oscommands/pipeline_test.go +++ b/pkg/commands/oscommands/pipeline_test.go @@ -112,8 +112,14 @@ func TestClosingAPipelinesOutputBringsItDown(t *testing.T) { assert.NoError(t, reader.Close()) - done := make(chan error, 1) - go func() { done <- pipeline.Wait() }() + // Only whether Wait returns matters here, not its error. If a write into a + // closed pipe raises a signal, the last command dies of it and Wait reports + // that; otherwise the command exits normally. + done := make(chan struct{}) + go func() { + _ = pipeline.Wait() + close(done) + }() select { case <-done: diff --git a/scripts/golangci-lint-shim.sh b/scripts/golangci-lint-shim.sh index 6cb3e007c..cd5841747 100755 --- a/scripts/golangci-lint-shim.sh +++ b/scripts/golangci-lint-shim.sh @@ -3,6 +3,6 @@ set -e # Must be kept in sync with the version in .github/workflows/ci.yml -version="v2.12.2" +version="v2.15.0" go run "github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$version" "$@"