mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-21 06:04:33 +00:00
## Why this should be merged Branch-protection rules only require the Go linter (erroneously called `lint`) by mistake. All linters are now dependencies of a single `lint` job that remains as a PR gate. New linters will now be enforced by default. Closes #138 ## How this works GitHub Actions `need` configuration. The path limitation of running `yamllint` is removed because it's such a cheap job so is ok to always run. ## How this was tested Inspection of CI run and PR's required jobs:  
65 lines
2 KiB
YAML
65 lines
2 KiB
YAML
name: lint
|
|
|
|
# If adding a new linter: (a) create a new job; and (b) add it to the `needs`
|
|
# list of the `lint` job as this is what gates PRs.
|
|
|
|
on:
|
|
push:
|
|
branches: [main, "release/**"]
|
|
pull_request:
|
|
branches: [main, "release/**"]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
# Required: allow read access to the content for analysis.
|
|
contents: read
|
|
# Optional: allow read access to pull request. Use with `only-new-issues` option.
|
|
pull-requests: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
needs: [golangci-lint, yamllint, shellcheck]
|
|
steps:
|
|
- run: echo "Dependencies successful"
|
|
|
|
golangci-lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: "go.mod"
|
|
- name: goheader
|
|
# The goheader linter is only enabled in the CI so that it runs only on modified or new files
|
|
# (see only-new-issues: true). It is disabled in .golangci.yml because
|
|
# golangci-lint running locally is not aware of new/modified files compared to the base
|
|
# commit of a pull request, and we want to avoid reporting invalid goheader errors.
|
|
uses: golangci/golangci-lint-action@ec5d18412c0aeab7936cb16880d708ba2a64e1ae # v6.2.0 since v6.3.1 does not handle `only-new-issues` correctly
|
|
with:
|
|
version: v1.60
|
|
only-new-issues: true
|
|
args: --enable-only goheader
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@v6
|
|
with:
|
|
version: v1.60
|
|
|
|
yamllint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: yamllint -c .yamllint.yml .
|
|
|
|
shellcheck:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Run ShellCheck
|
|
uses: ludeeus/action-shellcheck@2.0.0
|
|
with:
|
|
scandir: './libevm'
|