Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,10 @@ jobs:
CHOCOLATEY_API_KEY: ${{ secrets.CHOCOLATEY_API_KEY }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
GITHUB_TOKEN: ${{ secrets.GOLANGCI_LINT_TOKEN }}

- uses: actions/attest-build-provenance@v3
with:
subject-checksums: ./dist/golangci-lint-*-checksums.txt
- uses: actions/attest-build-provenance@v3
with:
subject-checksums: ./dist/digests.txt
160 changes: 46 additions & 114 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ builds:
ignore:
- goos: darwin
goarch: 386
# Deprecated in go1.25, Removed in go1.26
# https://go.dev/doc/go1.25#windows
- goos: windows
goarch: arm

archives:
- formats: [ 'tar.gz' ]
Expand Down Expand Up @@ -112,6 +116,9 @@ brews:
test: |
system "#{bin}/golangci-lint --version"

## chocolatey is disabled because mono has been removed from GitHub Actions runners due to security and maintenance concerns.
## The release is done manually and locally, with goreleaser after the release of the other elements.
## Note(ldez): add documentation about how to do it.
#chocolateys:
# - summary: Fast linters Runner for Go
# description: |
Expand Down Expand Up @@ -218,121 +225,46 @@ nfpms:
rpm:
group: Development/Tools

docker_manifests:
# basic
- name_template: 'golangci/golangci-lint:latest'
image_templates:
- 'golangci/golangci-lint:{{ .Tag }}-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-arm64'

- name_template: 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}'
image_templates:
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-amd64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-arm64'

- name_template: 'golangci/golangci-lint:{{ .Tag }}'
image_templates:
- 'golangci/golangci-lint:{{ .Tag }}-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-arm64'

# alpine
- name_template: 'golangci/golangci-lint:latest-alpine'
image_templates:
- 'golangci/golangci-lint:{{ .Tag }}-alpine-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-alpine-arm64'

- name_template: 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-alpine'
image_templates:
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-alpine-amd64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-alpine-arm64'

- name_template: 'golangci/golangci-lint:{{ .Tag }}-alpine'
image_templates:
- 'golangci/golangci-lint:{{ .Tag }}-alpine-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-alpine-arm64'

dockers:
- use: buildx
skip_push: false
goos: linux
goarch: amd64
dockers_v2:
- id: golangci-lint
images:
- 'golangci/golangci-lint'
dockerfile: build/buildx.Dockerfile
image_templates:
- 'golangci/golangci-lint:latest-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-amd64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-amd64'
build_flag_templates:
- '--pull'
platforms:
- linux/amd64
- linux/arm64
tags:
- 'latest'
- '{{ .Tag }}'
- 'v{{ .Major }}.{{ .Minor }}'
labels:
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=Fast linters Runner for Go'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation=https://golangci-lint.run'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/amd64'

- use: buildx
goos: linux
goarch: arm64
dockerfile: build/buildx.Dockerfile
image_templates:
- 'golangci/golangci-lint:latest-arm64'
- 'golangci/golangci-lint:{{ .Tag }}-arm64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-arm64'
build_flag_templates:
- '--pull'
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=Fast linters Runner for Go'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation=https://golangci-lint.run'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/arm64'

- use: buildx
goos: linux
goarch: amd64
dockerfile: build/buildx-alpine.Dockerfile
image_templates:
- 'golangci/golangci-lint:latest-alpine-amd64'
- 'golangci/golangci-lint:{{ .Tag }}-alpine-amd64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-alpine-amd64'
build_flag_templates:
- '--pull'
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=Fast linters Runner for Go'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation=https://golangci-lint.run'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/amd64'

- use: buildx
goos: linux
goarch: arm64
'org.opencontainers.image.title': '{{.ProjectName}}'
'org.opencontainers.image.description': 'Fast linters Runner for Go'
'org.opencontainers.image.source': '{{.GitURL}}'
'org.opencontainers.image.url': '{{.GitURL}}'
'org.opencontainers.image.documentation': 'https://golangci-lint.run'
'org.opencontainers.image.created': '{{.Date}}'
'org.opencontainers.image.revision': '{{.FullCommit}}'
'org.opencontainers.image.version': '{{.Version}}'
- id: golangci-lint-alpine
images:
- 'golangci/golangci-lint'
dockerfile: build/buildx-alpine.Dockerfile
image_templates:
- 'golangci/golangci-lint:latest-alpine-arm64'
- 'golangci/golangci-lint:{{ .Tag }}-alpine-arm64'
- 'golangci/golangci-lint:v{{ .Major }}.{{ .Minor }}-alpine-arm64'
build_flag_templates:
- '--pull'
platforms:
- linux/amd64
- linux/arm64
tags:
- 'latest-alpine'
- '{{ .Tag }}-alpine'
- 'v{{ .Major }}.{{ .Minor }}-alpine'
labels:
# https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
- '--label=org.opencontainers.image.title={{.ProjectName}}'
- '--label=org.opencontainers.image.description=Fast linters Runner for Go'
- '--label=org.opencontainers.image.source={{.GitURL}}'
- '--label=org.opencontainers.image.url={{.GitURL}}'
- '--label=org.opencontainers.image.documentation=https://golangci-lint.run'
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--platform=linux/arm64'
'org.opencontainers.image.title': '{{.ProjectName}}'
'org.opencontainers.image.description': 'Fast linters Runner for Go'
'org.opencontainers.image.source': '{{.GitURL}}'
'org.opencontainers.image.url': '{{.GitURL}}'
'org.opencontainers.image.documentation': 'https://golangci-lint.run'
'org.opencontainers.image.created': '{{.Date}}'
'org.opencontainers.image.revision': '{{.FullCommit}}'
'org.opencontainers.image.version': '{{.Version}}'
4 changes: 3 additions & 1 deletion build/buildx-alpine.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# syntax=docker/dockerfile:1.4
FROM golang:1.25-alpine

ARG TARGETPLATFORM

# related to https://github.com/golangci/golangci-lint/issues/3107
ENV GOROOT /usr/local/go

Expand All @@ -17,5 +19,5 @@ RUN apk --no-cache add gcc musl-dev git mercurial
# Set all directories as safe
RUN git config --global --add safe.directory '*'

COPY golangci-lint /usr/bin/
COPY $TARGETPLATFORM/golangci-lint /usr/bin/
CMD ["golangci-lint"]
4 changes: 3 additions & 1 deletion build/buildx.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# syntax=docker/dockerfile:1.4
FROM golang:1.25

ARG TARGETPLATFORM

# related to https://github.com/golangci/golangci-lint/issues/3107
ENV GOROOT /usr/local/go

Expand All @@ -12,5 +14,5 @@ ENV GOTOOLCHAIN auto
# Set all directories as safe
RUN git config --global --add safe.directory '*'

COPY golangci-lint /usr/bin/
COPY $TARGETPLATFORM/golangci-lint /usr/bin/
CMD ["golangci-lint"]
Loading