golangci-lint
The golangci-lint Go linter, built with the workstation's Go toolchain onto the system PATH.
Installs golangci-lint by building it with the workstation’s Go toolchain and placing the
binary in /usr/local/bin, so it is on the PATH of both root and the login user.
devtools:
- name: go
- name: golangci-lintVersion behaviour
version | Result |
|---|---|
| omitted | a pinned default release, chosen to be a known-good v2 |
v2.13.0 | that exact release tag |
2.13.0 | normalised to v2.13.0 |
latest | the newest release, resolved at install time |
Dependency on Go
The recipe needs a Go toolchain to install the linter. If go
is declared first, that toolchain is used. If no Go toolchain is present at all, the
recipe installs the distribution’s Go package as a fallback — usually older, and
occasionally too old for the pinned linter. Declare go explicitly whenever you care
which toolchain builds it.
Example
devtools:
- name: go
version: "1.22.5"
- name: golangci-lint
version: v2.13.0Notes
- The install probe executes
golangci-lint versionrather than merely checking that the file exists, so a partially-written binary from an interrupted install is detected and replaced. - Changing
versionreinstalls on the next setup run. - Works on Debian, Ubuntu, and Alpine.