Add .github/workflows/golangci-lint.yml with the following contents:
name: golangci-lint
on:
push:
tags:
- v*
branches:
- master
pull_request:
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: golangci-lint
uses: golangci/golangci-lint-action@v1
with:
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
version: v1.26
# Optional: golangci-lint command line arguments.
# args: ./the-only-dir-to-analyze/...
# Required: GitHub token with scope `repo.public_repo`. Used for fetching a list of releases of golangci-lint.
github-token: ${{ secrets.GOLANGCI_LINT_GITHUB_TOKEN }}
Comments and Annotations
Currently, GitHub parses the action's output and creates annotations.
The restrictions of annotations are the following:
Currently, they don't support markdown formatting (see the feature request)
They aren't shown in list of comments like it was with golangci.com. If you would like to have comments - please, up-vote the issue.
Internals
We use JavaScript-based action. We don't use Docker-based action because:
docker pulling is slow currently
it's easier to use caching from @actions/cache until GitHub team hasn't supported reusing actions from actions
Inside our action we perform 3 steps:
Setup environment running in parallel:
restore cache of previous analyzes into $HOME/.cache/golangci-lint