Description
Recently I was fixing issues found by golangci-lint after updating go.mod
in a PR for a dependency update.
The PR continued to fail CI even after fixing the staticcheck issues for a specific platform (in the end I had to use // nolint:staticcheck
because we run lint across 3 architecture/OS platforms, and 1 of them had an "unsupported feature" which meant a platform-generic Go file that checks a return got flagged by staticcheck as "never returns a nil value", which is true on that one platform.
Regardless, I assumed that CI would pass after marking these as nolint:staticcheck
. The specific core errors did go away, but the "related information" entries appear to persist in the cache and therefore continue to mark this step as a failed step in CI.
I had to workaround it by adding skip-cache: true
to our golangci-lint stanza to generate a new cache. I assume I could now remove it given those entries are invalidated now.
I believe this is a bug, but I don't know specifically how the cache works in line with the output from golangci-lint. Maybe it is hard to correlate the "related information" to the problem being solved, but if that can't be done then it may be hard to ever use cache as fixing the root golangci-lint flagged issue will never invalidate the "related information" entries.