Skip to content

Commit

Permalink
Move linting to a Github action for better integration (#30985)
Browse files Browse the repository at this point in the history
Now the linting issues will be displayed in the PR diff on Github and
one can see the issues inline during the review.
  • Loading branch information
rdner committed Mar 24, 2022
1 parent ba5336a commit a3e55a4
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 3 deletions.
61 changes: 61 additions & 0 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
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@v2

# Uses Go version from the repository.
- name: Read .go-version file
id: goversion
run: echo "::set-output name=version::$(cat .go-version)"

- uses: actions/setup-go@v2
with:
go-version: "${{ steps.goversion.outputs.version }}"

- name: golangci-lint
env:
GOOS: ${{ matrix.GOOS }}
uses: golangci/golangci-lint-action@v2
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.44.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
1 change: 1 addition & 0 deletions CHANGELOG-developer.next.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ The list below covers the major changes between 7.0.0-rc2 and main only.
- Add gcp firestore metricset. {pull}29918[29918]
- Added TESTING_FILEBEAT_FILEPATTERN option for filebeat module pytests {pull}30103[30103]
- Add gcp dataproc metricset. {pull}30008[30008]
- Add Github action for linting

==== Deprecated

Expand Down
3 changes: 0 additions & 3 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,6 @@ def runLinting() {
}
mapParallelTasks['default'] = {
cmd(label: 'make check-default', script: 'make check-default')
cmd(label: 'Lint Last Change [Linux]', script: 'GOOS=linux mage -v llc')
cmd(label: 'Lint Last Change [Darwin]', script: 'GOOS=darwin mage -v llc')
cmd(label: 'Lint Last Change [Windows]', script: 'GOOS=windows mage -v llc')
}
mapParallelTasks['pre-commit'] = runPreCommit()
parallel(mapParallelTasks)
Expand Down

0 comments on commit a3e55a4

Please sign in to comment.