Closed
Description
Welcome
- Yes, I understand that the GitHub action repository is not the repository of golangci-lint itself.
- Yes, I've searched similar issues on GitHub and didn't find any.
- Yes, I've included all information below (version, config, etc).
Description of the problem
We are seeing the following. This should not be happening since the spec says (my emphasis):
Slice, map, and function values are not comparable. However, as a special case, a slice, map, or function value may be compared to the predeclared identifier nil. Comparison of pointer, channel, and interface values to nil is also allowed and follows from the general rules above.
Check failure on line 213 in x-pack/filebeat/input/httpjson/encoding.go
GitHub Actions / lint (darwin)
invalid operation: cannot compare dst.header == nil (operator == not defined on untyped nil) (typecheck)
This does not happen locally.
The issue looks to be related to https://go.dev/issue/39755.
Version of golangci-lint
v1.47.2
Version of the GitHub Action
Question not clearly defined.
Workflow file
name: golangci-lint
on:
#push:
# branches:
# - main
# - 8.*
# - 7.17
pull_request:
permissions:
contents: read
# Optional: allow read access to pull request. Use with `only-new-issues` option.
pull-requests: read
jobs:
golangci:
strategy:
matrix:
include:
- GOOS: windows
- GOOS: linux
- GOOS: darwin
name: lint
runs-on: ubuntu-latest
steps:
- name: Echo details
env:
GOOS: ${{ matrix.GOOS }}
run: echo Go GOOS=$GOOS
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version-file: .go-version
- name: golangci-lint
env:
GOOS: ${{ matrix.GOOS }}
CGO_ENABLED: 1
uses: golangci/golangci-lint-action@v3
with:
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
version: v1.47.2
# Give the job more time to execute.
# Regarding `--whole-files`, the linter is supposed to support linting of changed a patch only but,
# for some reason, it's very unreliable this way - sometimes it does not report any or some
# issues without linting the whole files, so we have to use `--whole-files`
# which can lead to some frustration from developers who would like to
# fix a single line in an existing codebase and the linter would force them
# into fixing all linting issues in the whole file instead
args: --timeout=30m --whole-files
# Optional: if set to true then the action will use pre-installed Go.
skip-go-installation: true
# Optional: show only new issues if it's a pull request. The default value is `false`.
only-new-issues: true
Go version
go1.18.9
Code example or link to a public repository
https://github.com/elastic/beats/pull/34044/files#annotation_7094626396