Compare commits

...
77 Commits
Author SHA1 Message Date
dependabot[bot] 9f0b11b334 build(deps): bump the github-actions group with 3 updates (#1431) 2026-11-01 11:18:21 +01:00
dependabot[bot]andFernandez Ludovic 1eaa2a6e86 build(deps): bump undici from 7.30.0 to 7.30.1 (#1430)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-10-31 10:26:58 +00:00
dependabot[bot]andFernandez Ludovic 80a417e615 build(deps): bump brace-expansion (#1428)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-10-01 10:26:26 +00:00
dependabot[bot] e5e32b0b4b build(deps): bump the github-actions group with 2 updates (#1427) 2026-10-01 12:14:40 +02:00
dependabot[bot]andFernandez Ludovic 084bc5f315 build(deps): bump undici from 7.29.0 to 7.30.0 (#1425)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-09-29 13:29:39 +02:00
dependabot[bot] f8208ee75b build(deps-dev): bump js-yaml from 4.3.1 to 4.3.2 (#1423) 2026-09-13 13:20:56 +02:00
dependabot[bot] 2ed87efab0 build(deps-dev): bump @humanfs/node from 0.16.7 to 0.16.8 (#1421) 2026-09-03 05:35:24 +02:00
dependabot[bot] c4842f37dd build(deps): bump the github-actions group with 2 updates (#1419) 2026-09-01 13:02:34 +02:00
Ludovic Fernandez 541d7b0384 chore: update test version targets (#1417) 2026-09-01 02:27:14 +02:00
biancalanaandFernandez Ludovic 3de4be9e74 fix: binary installation for FreeBSD (#1415)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-08-21 01:51:25 +02:00
Ludovic Fernandez c3ef4a2b0b build(deps): bump undici from 6.28.0 to 7.16.0 (#1412) 2026-08-11 12:46:39 +02:00
Fernandez Ludovic 7791272dd3 chore: generate 2026-08-11 11:54:20 +02:00
Fernandez Ludovic a8c3248d3d build(deps): bump undici 2026-08-11 04:05:12 +02:00
dependabot[bot]andFernandez Ludovic c620e17647 build(deps): bump brace-expansion (#1410)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-08-11 02:02:49 +00:00
dependabot[bot] cb7d1a18ef build(deps-dev): bump js-yaml from 4.2.0 to 4.3.1 (#1411) 2026-08-11 03:52:32 +02:00
dependabot[bot] bbd93eaebb build(deps): bump the github-actions group with 5 updates (#1408) 2026-08-01 11:59:54 +02:00
dependabot[bot] e72a236d12 build(deps): bump the github-actions group with 4 updates (#1405) 2026-07-01 11:25:16 +02:00
Fernandez Ludovic ba0d7d2ec0 chore: prepare release v9.3.0 2026-06-29 17:43:58 +02:00
Ludovic Fernandez efd0857dc4 feat: add no-run-logs-group as experimental option (#1403) 2026-06-29 17:39:16 +02:00
Fernandez Ludovic ed485de1ff build(deps): bump undici from 6.24.0 to 6.27.0 2026-06-22 16:28:45 +02:00
dependabot[bot] 8872e8d04c build(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 (#1400) 2026-06-15 22:06:49 +02:00
dependabot[bot]andFernandez Ludovic b163415b47 build(deps): bump tmp from 0.2.6 to 0.2.7 (#1399)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-06-15 19:48:21 +00:00
dependabot[bot] e52a9f8996 build(deps): bump github/codeql-action from 4.35.5 to 4.36.0 in the github-actions group (#1398) 2026-06-02 06:11:24 +02:00
dependabot[bot]andFernandez Ludovic 8182aa3494 build(deps): bump tmp from 0.2.5 to 0.2.6 (#1397)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-05-28 13:01:57 +02:00
dependabot[bot] 5403a413de build(deps): bump github/codeql-action from 4.35.4 to 4.35.5 in the github-actions group (#1395) 2026-05-22 02:50:10 +02:00
Fernandez Ludovic 82606bf257 chore: prepare release v9.2.1 2026-05-22 02:36:08 +02:00
Ludovic Fernandez 97c8387e66 chore: improve workflows (#1394) 2026-05-22 02:32:02 +02:00
Fernandez Ludovic 28d0a191bb build(deps): bump the dependencies group across 1 directory with 2 updates 2026-05-19 23:49:00 +02:00
dependabot[bot] 633fbc7d54 build(deps): bump github/codeql-action from 4.35.3 to 4.35.4 (#1391) 2026-05-19 23:43:14 +02:00
dependabot[bot] 59f43e26c9 build(deps): bump github/codeql-action from 4.35.2 to 4.35.3 (#1389) 2026-05-12 17:12:19 +02:00
dependabot[bot] 9eb174e04a build(deps): bump fast-xml-builder from 1.1.5 to 1.2.0 (#1386) 2026-05-08 21:40:47 +02:00
dependabot[bot] 4f52504dfb build(deps): bump github/codeql-action from 4 to 4.35.2 (#1384) 2026-05-06 05:32:49 +02:00
Fernandez Ludovic 6f87dfdbd1 docs: update examples 2026-05-06 05:09:42 +02:00
Fernandez Ludovic c9500d7aa7 chore: improve workflows 2026-05-06 05:05:55 +02:00
Fernandez Ludovic 03b1faa37e chore: improve issue templates 2026-05-06 05:03:42 +02:00
Simon Sawert 66dfb5ced2 docs: document how to stay up to date with Renovate (#1378) 2026-04-21 19:16:39 +02:00
Ludovic Fernandez c592b80ac9 build(deps-dev): bump the dev-dependencies group across 1 directory with 7 updates (#1374) 2026-04-20 16:24:19 +02:00
dependabot[bot]andFernandez Ludovic 46c9287ccb build(deps): bump brace-expansion (#1370)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-04-08 09:20:41 +00:00
Andreas Deininger 36fe29c8f9 docs: fix broken link (#1368) 2026-04-01 22:46:12 +00:00
dependabot[bot]andFernandez Ludovic 2d7e7b6785 build(deps): bump yaml from 2.8.2 to 2.8.3 (#1365)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-03-26 10:42:32 +00:00
dependabot[bot] 40890fa829 build(deps): bump picomatch from 4.0.3 to 4.0.4 (#1364) 2026-03-26 11:33:21 +01:00
Oleksandr Redko e94e72cadf docs: update examples (#1360) 2026-03-22 09:17:25 +01:00
dependabot[bot] b269f19624 build(deps-dev): bump flatted from 3.3.3 to 3.4.2 (#1359) 2026-03-20 01:55:27 +00:00
dependabot[bot]andFernandez Ludovic fa2a845e31 build(deps): bump fast-xml-parser from 5.5.6 to 5.5.7 (#1358)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-03-20 01:46:17 +00:00
dependabot[bot]andFernandez Ludovic 2bcbc9e745 build(deps): bump fast-xml-parser from 5.4.1 to 5.5.6 (#1357)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-03-18 17:11:34 +00:00
Oleksandr Redko b7bcab6379 docs: remove duplicated compatibility requirement (#1353) 2026-03-03 11:24:25 +01:00
dependabot[bot]andFernandez Ludovic b207e52793 build(deps): bump fast-xml-parser from 5.3.6 to 5.4.1 (#1351)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-02-28 08:20:15 +00:00
dependabot[bot]andFernandez Ludovic f6671aa25d build(deps): bump minimatch from 3.1.3 to 3.1.5 (#1350)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-02-28 09:08:03 +01:00
Fernandez Ludovic 6b23cb2cbc docs: update examples 2026-02-28 08:31:27 +01:00
dependabot[bot]andFernandez Ludovic 02d66c3f78 build(deps): bump minimatch (#1348)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-02-25 00:54:57 +00:00
dependabot[bot]andFernandez Ludovic 17a5bf4dbc build(deps): bump fast-xml-parser from 5.3.4 to 5.3.6 (#1346)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-02-18 09:29:28 +00:00
dependabot[bot]andFernandez Ludovic fce8c98977 build(deps-dev): bump the dev-dependencies group across 1 directory with 3 updates (#1344)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-02-16 15:15:42 +01:00
dependabot[bot] b62bd5d234 build(deps-dev): bump the dev-dependencies group with 2 updates (#1340) 2026-02-02 12:01:18 +01:00
dependabot[bot]andFernandez Ludovic d6deb2e8bd build(deps): bump fast-xml-parser from 5.3.3 to 5.3.4 (#1339)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-01-31 02:24:27 +01:00
dependabot[bot] 2c963d3543 build(deps): bump @types/node from 25.0.9 to 25.0.10 in the dependencies group (#1338) 2026-01-26 13:54:47 +01:00
dependabot[bot] 66754993e2 build(deps-dev): bump the dev-dependencies group with 3 updates (#1337) 2026-01-26 13:54:21 +01:00
dependabot[bot]andFernandez Ludovic a3a03ee425 build(deps): bump the dependencies group with 2 updates (#1336)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-01-19 10:58:50 +00:00
dependabot[bot] fd271f07e7 build(deps-dev): bump the dev-dependencies group with 4 updates (#1335) 2026-01-19 11:48:00 +01:00
dependabot[bot]andFernandez Ludovic de73c35617 build(deps): bump the dependencies group with 6 updates (#1334)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-01-12 14:07:29 +00:00
dependabot[bot]andFernandez Ludovic f75f4b02ef build(deps-dev): bump the dev-dependencies group with 2 updates (#1333)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2026-01-12 13:48:04 +00:00
dependabot[bot] f75c1c4ee8 build(deps-dev): bump the dev-dependencies group with 2 updates (#1332) 2026-01-05 12:24:50 +01:00
dependabot[bot] e9dc9291fd build(deps-dev): bump the dev-dependencies group with 2 updates (#1330) 2025-12-29 14:34:53 +01:00
dependabot[bot] 2e568c9b8b build(deps): bump @types/node from 25.0.2 to 25.0.3 in the dependencies group (#1329) 2025-12-22 17:18:27 +01:00
dependabot[bot] 6ad01b21aa build(deps-dev): bump the dev-dependencies group with 2 updates (#1328) 2025-12-22 17:17:59 +01:00
dependabot[bot]andFernandez Ludovic ef750330e2 build(deps): bump the dependencies group with 4 updates (#1327)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2025-12-15 10:24:02 +00:00
dependabot[bot] 3ab2377cc3 build(deps-dev): bump the dev-dependencies group with 2 updates (#1326) 2025-12-15 11:13:55 +01:00
dependabot[bot] ca80beefdd build(deps-dev): bump the dev-dependencies group with 3 updates (#1325) 2025-12-08 13:32:43 +01:00
Fernandez Ludovic 87a373f691 chore: update workflow 2025-12-08 13:12:37 +01:00
Fernandez Ludovic 7fa6da85a5 chore: update workflow 2025-12-08 12:54:19 +01:00
dependabot[bot]andFernandez Ludovic 1e7e51e771 build(deps): bump yaml from 2.8.1 to 2.8.2 in the dependencies group (#1324)
Co-authored-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2025-12-01 13:01:48 +01:00
dependabot[bot] 5256ff0c0a build(deps-dev): bump the dev-dependencies group with 3 updates (#1323) 2025-12-01 12:32:33 +01:00
Fernandez Ludovic 13fed6f911 chore: update workflows 2025-11-28 17:39:49 +01:00
Fernandez Ludovic 7afe8ff863 chore: update workflows 2025-11-28 17:28:27 +01:00
Ludovic Fernandez 5a9289952f chore: move samples into fixtures (#1321) 2025-11-28 17:21:09 +01:00
Ludovic Fernandez aa6fad0ea0 feat: add version-file option (#1320) 2025-11-28 16:54:48 +01:00
dependabot[bot] a6071aaacb build(deps): bump actions/checkout from 5 to 6 (#1318) 2025-11-24 12:36:51 +01:00
dependabot[bot] 6e36c8460f build(deps-dev): bump the dev-dependencies group with 2 updates (#1317) 2025-11-24 12:36:23 +01:00
39 changed files with 153784 additions and 133971 deletions

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2020,
"sourceType": "module"
"sourceType": "commonjs"
},
"extends": [
"eslint:recommended",
+19 -2
View File
@@ -10,8 +10,6 @@ body:
required: true
- label: Yes, I've searched similar issues on GitHub and didn't find any.
required: true
- label: Yes, I've included all information below (version, config, etc).
required: true
- type: textarea
id: problem
@@ -25,6 +23,7 @@ body:
id: golangci-lint-version
attributes:
label: Version of golangci-lint
placeholder: golangci-lint has version 2.x.x built with go1.x.x from xxxx on xxxx-xx-xx
validations:
required: true
@@ -32,6 +31,7 @@ body:
id: github-action-version
attributes:
label: Version of the GitHub Action
placeholder: v9.2.0
validations:
required: true
@@ -69,6 +69,7 @@ body:
id: go-env
attributes:
label: Go version
placeholder: go1.25.8
validations:
required: true
@@ -86,3 +87,19 @@ body:
</details>
validations:
required: true
- type: checkboxes
id: validation
attributes:
label: Validation
options:
- label: Yes, I've included all the information above (example, version, config, etc.).
required: true
- type: checkboxes
id: supporter
attributes:
label: Supporter
description: If you find golangci-lint valuable, consider [sponsoring the project](https://donate.golangci.org) to help sustain its development. 💛
options:
- label: I am a [sponsor/backer](https://donate.golangci.org) of this project.
@@ -42,3 +42,11 @@ body:
placeholder: "Add any other context or screenshots about the feature request here."
validations:
required: false
- type: checkboxes
id: supporter
attributes:
label: Supporter
description: If you find golangci-lint valuable, consider [sponsoring the project](https://donate.golangci.org) to help sustain its development. 💛
options:
- label: I am a [sponsor/backer](https://donate.golangci.org) of this project.
+10 -2
View File
@@ -3,7 +3,13 @@ updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
interval: monthly
cooldown:
default-days: 7
groups:
github-actions:
patterns:
- "*" # Group all updates into a single larger pull request.
- package-ecosystem: npm
directory: "/"
groups:
@@ -12,4 +18,6 @@ updates:
dependencies:
dependency-type: production
schedule:
interval: weekly
interval: monthly
cooldown:
default-days: 7
+9 -7
View File
@@ -5,7 +5,6 @@ on:
branches:
- main
pull_request:
# The branches below must be a subset of the branches above
branches:
- main
schedule:
@@ -13,17 +12,20 @@ on:
jobs:
codeQL:
# CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
# Must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head of the pull request.
# Only include this option if you are running this workflow on pull requests.
fetch-depth: 2
persist-credentials: false
# If this run was triggered by a pull request event then checkout
# the head of the pull request instead of the merge commit.
@@ -33,14 +35,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
# Override language selection by uncommenting this and choosing your languages
with:
language: 'javascript'
languages: 'javascript-typescript'
- run: |
npm install
npm run all
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # v4.39.1
+54 -49
View File
@@ -1,5 +1,6 @@
name: "build-and-test"
on: # rebuild any PRs and main branch changes
on:
pull_request:
branches:
- main
@@ -7,22 +8,28 @@ on: # rebuild any PRs and main branch changes
branches:
- main
permissions: {}
jobs:
build: # make sure build/ci work properly
# make sure build/ci work properly
build:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v6
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/checkout@v5
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- run: |
npm install
npm run all
# Fail the build if there is dirty change
# Fail the build if there are changes.
- run: git diff --exit-code -- dist
test: # make sure the action works on a clean machine without building
# make sure the action works on a clean machine without building
test:
needs: [ build ]
strategy:
matrix:
@@ -34,27 +41,27 @@ jobs:
version:
- ""
- "latest"
- "v2.5"
- "v2.5.0"
- "v2.13"
- "v2.13.2"
runs-on: ${{ matrix.os }}
permissions:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/setup-go@v6
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: oldstable
- uses: ./
with:
version: ${{ matrix.version }}
args: --timeout=5m --issues-exit-code=0 ./sample/...
args: --timeout=5m --issues-exit-code=0 ./fixtures/simple/...
only-new-issues: true
test-go-install: # make sure the action works on a clean machine without building (go-install mode)
# make sure the action works on a clean machine without building (go-install mode)
test-go-install:
needs: [ build ]
strategy:
matrix:
@@ -66,24 +73,23 @@ jobs:
version:
- ""
- "latest"
- "v2.5.0"
- "655e8ede5178280b2a640e185bc4a343aed0f54e"
- "v2.13.2"
- "dfd21f102e8031c6d4d1c8ec1d3e75c29197855c"
runs-on: ${{ matrix.os }}
permissions:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/setup-go@v6
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: oldstable
- uses: ./
with:
version: ${{ matrix.version }}
args: --timeout=5m --issues-exit-code=0 ./sample/...
args: --timeout=5m --issues-exit-code=0 ./fixtures/simple/...
only-new-issues: true
install-mode: goinstall
@@ -97,17 +103,17 @@ jobs:
- macos-latest
- windows-latest
wd:
- sample-go-mod
- sample-go-tool
- fixtures/go-mod
- fixtures/go-tool
runs-on: ${{ matrix.os }}
permissions:
contents: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/setup-go@v6
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: oldstable
- uses: ./
@@ -115,7 +121,8 @@ jobs:
working-directory: ${{ matrix.wd }}
args: --timeout=5m --issues-exit-code=0 ./...
test-plugins: # make sure the action works on a clean machine with plugins
# make sure the action works on a clean machine with plugins
test-plugins:
needs: [ build ]
strategy:
matrix:
@@ -127,24 +134,23 @@ jobs:
version:
- ""
- "latest"
- "v2.5"
- "v2.5.0"
- "v2.13"
- "v2.13.2"
runs-on: ${{ matrix.os }}
permissions:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/setup-go@v6
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: oldstable
- uses: ./
with:
version: ${{ matrix.version }}
working-directory: sample-plugins
working-directory: fixtures/plugins
args: --timeout=5m --issues-exit-code=0 ./...
test-monorepo:
@@ -157,19 +163,18 @@ jobs:
- macos-latest
- windows-latest
runs-on: ${{ matrix.os }}
permissions:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24.x
- uses: actions/setup-go@v6
- uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version: oldstable
- uses: ./
with:
working-directory: sample-monorepo
working-directory: fixtures/monorepo
experimental: "automatic-module-directories"
args: --timeout=5m --issues-exit-code=0 ./...
+84 -29
View File
@@ -49,14 +49,14 @@ jobs:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: stable
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.6
version: v2.13
```
</details>
@@ -87,14 +87,14 @@ jobs:
name: lint
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go }}
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.6
version: v2.13
```
You will also likely need to add the following `.gitattributes` file to ensure that line endings for Windows builds are properly formatted:
@@ -120,7 +120,7 @@ on:
env:
GO_VERSION: stable
GOLANGCI_LINT_VERSION: v2.6
GOLANGCI_LINT_VERSION: v2.13
jobs:
detect-modules:
@@ -128,7 +128,7 @@ jobs:
outputs:
modules: ${{ steps.set-modules.outputs.modules }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
@@ -142,7 +142,7 @@ jobs:
matrix:
modules: ${{ fromJSON(needs.detect-modules.outputs.modules) }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ env.GO_VERSION }}
@@ -179,7 +179,7 @@ jobs:
with:
os: ${{ matrix.os }}
go-version: ${{ matrix.go-version }}
golangci-lint-version: v2.6
golangci-lint-version: v2.13
```
```yaml
@@ -201,7 +201,7 @@ on:
golangci-lint-version:
description: 'Golangci-lint version'
type: string
default: 'v2.6'
default: 'v2.13'
jobs:
detect-modules:
@@ -209,7 +209,7 @@ jobs:
outputs:
modules: ${{ steps.set-modules.outputs.modules }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ inputs.go-version }}
@@ -224,7 +224,7 @@ jobs:
matrix:
modules: ${{ fromJSON(needs.detect-modules.outputs.modules) }}
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ${{ inputs.go-version }}
@@ -247,7 +247,6 @@ You will also likely need to add the following `.gitattributes` file to ensure t
* `v9.0.0` requires Nodejs runtime [`node24`](https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/)
* `v8.0.0` works with `golangci-lint` version >= `v2.1.0`
* `v8.0.0` works with `golangci-lint` version >= `v2.1.0`
* `v7.0.0` supports golangci-lint v2 only.
* `v6.0.0+` removes `annotations` option, removes the default output format (`github-actions`).
* `v5.0.0+` removes `skip-pkg-cache` and `skip-build-cache` because the cache related to Go itself is already handled by `actions/setup-go`.
@@ -261,21 +260,22 @@ You will also likely need to add the following `.gitattributes` file to ensure t
### Overview
| Option | Description |
|---------------------------------------------------------------|----------------------------------------------------|
| [`version`](#version) | The version of golangci-lint to use. |
| [`install-mode`](#install-mode) | The mode to install golangci-lint. |
| [`install-only`](#install-only) | Only install golangci-lint. |
| [`verify`](#verify) | Validates golangci-lint configuration file. |
| [`github-token`](#github-token) | Used by the `only-new-issues` option. |
| [`only-new-issues`](#only-new-issues) | Show only new issues. |
| [`working-directory`](#working-directory) | The golangci-lint working directory. |
| [`args`](#args) | Golangci-lint command line arguments. |
| [`skip-cache`](#skip-cache) | Disable cache support. |
| [`skip-save-cache`](#skip-save-cache) | Don't save cache. |
| [`cache-invalidation-interval`](#cache-invalidation-interval) | Number of days before cache invalidation. |
| [`problem-matchers`](#problem-matchers) | Forces the usage of the embedded problem matchers. |
| [Experimental](#experimental) | Experimental options |
| Option | Description |
|---------------------------------------------------------------|-------------------------------------------------------|
| [`version`](#version) | The version of golangci-lint to use. |
| [`version-file`](#version-file) | Gets the version of golangci-lint to use from a file. |
| [`install-mode`](#install-mode) | The mode to install golangci-lint. |
| [`install-only`](#install-only) | Only install golangci-lint. |
| [`verify`](#verify) | Validates golangci-lint configuration file. |
| [`github-token`](#github-token) | Used by the `only-new-issues` option. |
| [`only-new-issues`](#only-new-issues) | Show only new issues. |
| [`working-directory`](#working-directory) | The golangci-lint working directory. |
| [`args`](#args) | Golangci-lint command line arguments. |
| [`skip-cache`](#skip-cache) | Disable cache support. |
| [`skip-save-cache`](#skip-save-cache) | Don't save cache. |
| [`cache-invalidation-interval`](#cache-invalidation-interval) | Number of days before cache invalidation. |
| [`problem-matchers`](#problem-matchers) | Forces the usage of the embedded problem matchers. |
| [Experimental](#experimental) | Experimental options |
### Installation
@@ -296,7 +296,29 @@ When `install-mode` is:
```yml
uses: golangci/golangci-lint-action@v9
with:
version: v2.6
version: v2.13
# ...
```
</details>
#### `version-file`
Gets the version of golangci-lint to use from a file.
The path must be relative to the root of the project, or the `working-directory` if defined.
This parameter supports `.golangci-lint-version`, and `.tool-versions` files.
Only works with `install-mode: binary` (the default).
<details>
<summary>Example</summary>
```yml
uses: golangci/golangci-lint-action@v9
with:
version-file: .tool-versions
# ...
```
@@ -310,7 +332,7 @@ The mode to install golangci-lint: it can be `binary`, `goinstall`, or `none`.
The default value is `binary`.
`goinstall` is not recommended, more explanations [here](https://golangci-lint.run/docs/welcome/install/#install-from-sources).
`goinstall` is not recommended, more explanations [here](https://golangci-lint.run/docs/welcome/install/local/#install-from-sources).
<details>
<summary>Example</summary>
@@ -594,6 +616,23 @@ with:
</details>
#### `no-run-logs-group`
(optional)
This option disables the grouping of logs from golangci-lint run.
<details>
<summary>Example</summary>
```yaml
uses: golangci/golangci-lint-action@v9
with:
experimental: "no-run-logs-group"
```
</details>
## Annotations
Currently, GitHub parses the action's output and creates [annotations](https://github.blog/2018-12-14-introducing-check-runs-and-annotations/).
@@ -624,6 +663,22 @@ build and run the custom version of golangci-lint.
For more information, see [module plugin system](https://golangci-lint.run/docs/plugins/module-plugins/).
## Tips
### Using Renovate to update the golangci-lint version
[Renovate](https://docs.renovatebot.com/) can update both the action and the
`golangci-lint` version it uses via its [github-actions manager](https://docs.renovatebot.com/modules/manager/github-actions/#commonly-used-community-actions)
which is included in presets like `config:recommended`.
It can also be enabled explicitly in `renovate.json`:
```json
{
"enabledManagers": ["github-actions"]
}
```
## Performance
The action was implemented with performance in mind:
+8
View File
@@ -11,6 +11,13 @@ inputs:
- `goinstall`: the value can be v2.3.4, `latest`, or the hash of a commit.
- `none`: the value is ignored.
required: false
version-file:
description: |
Gets the version of golangci-lint to use from a file.
The path must be relative to the root of the project, or the `working-directory` if defined.
This parameter supports `.golangci-lint-version`, and `.tool-versions` files.
Only works with `install-mode: binary` (the default).
required: false
install-mode:
description: "The mode to install golangci-lint. It can be 'binary', 'goinstall', or 'none'."
default: "binary"
@@ -69,6 +76,7 @@ inputs:
description: |
Experimental options for the action.
List of comma separated options.
Available options: `automatic-module-directories`, `no-run-logs-group`
default: ""
required: false
runs:
Generated Vendored
+76225 -66414
View File
File diff suppressed because it is too large. Load diff
Generated Vendored
+76225 -66414
View File
File diff suppressed because it is too large. Load diff
+55
View File
@@ -0,0 +1,55 @@
import { defineConfig } from "eslint/config";
import { fixupConfigRules, fixupPluginRules } from "@eslint/compat";
import typescriptEslint from "@typescript-eslint/eslint-plugin";
import simpleImportSort from "eslint-plugin-simple-import-sort";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
export default defineConfig([{
extends: fixupConfigRules(compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
"plugin:prettier/recommended",
)),
plugins: {
"@typescript-eslint": fixupPluginRules(typescriptEslint),
"simple-import-sort": simpleImportSort,
},
languageOptions: {
globals: {
...globals.node,
...globals.jest,
},
parser: tsParser,
ecmaVersion: 2020,
sourceType: "commonjs",
},
rules: {
"import/first": "error",
"import/newline-after-import": "error",
"import/no-duplicates": "error",
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"sort-imports": "off",
},
}]);
File renamed without changes.
@@ -1,4 +1,4 @@
module sample
module github.com/golangci/sample
go 1.24.0
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,4 +1,4 @@
module sample
module github.com/golangci/sample
go 1.24.0
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,4 +1,4 @@
version: v2.6.1
version: v2.10.1
name: custom-golangci-lint
#destination: ./zzz/path/
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+1020 -1033
View File
File diff suppressed because it is too large. Load diff
+21 -14
View File
@@ -1,6 +1,6 @@
{
"name": "golanci-lint-action",
"version": "8.0.0",
"version": "9.3.0",
"private": true,
"description": "golangci-lint github action",
"main": "dist/main.js",
@@ -27,31 +27,38 @@
"node": ">=24.0.0"
},
"dependencies": {
"@actions/cache": "^4.1.0",
"@actions/core": "^1.11.1",
"@actions/exec": "^1.1.1",
"@actions/github": "^6.0.1",
"@actions/cache": "^5.0.3",
"@actions/core": "^2.0.2",
"@actions/exec": "^2.0.0",
"@actions/github": "^7.0.0",
"@actions/http-client": "^3.0.0",
"@actions/tool-cache": "^3.0.0",
"@octokit/plugin-retry": "^6.1.0",
"@actions/tool-cache": "^2.0.2",
"@types/node": "^24.10.1",
"@types/node": "^25.0.10",
"@types/semver": "^7.7.1",
"@types/tmp": "^0.2.6",
"@types/which": "^3.0.4",
"tmp": "^0.2.5",
"which": "^6.0.0",
"yaml": "^2.8.1"
"tmp": "^0.2.7",
"which": "^7.0.0",
"yaml": "^2.9.0"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^8.46.4",
"@eslint/compat": "^2.0.5",
"@eslint/eslintrc": "^3.3.5",
"@eslint/js": "^9.39.2",
"@typescript-eslint/eslint-plugin": "^8.58.1",
"@typescript-eslint/parser": "^8.32.1",
"@vercel/ncc": "^0.38.4",
"eslint": "^8.57.1",
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-simple-import-sort": "^12.1.1",
"prettier": "^3.6.2",
"globals": "^17.5.0",
"prettier": "^3.8.2",
"typescript": "^5.9.3"
},
"overrides": {
"undici": "^7.16.0"
}
}
+1 -1
View File
@@ -145,7 +145,7 @@ async function installBin(versionInfo: VersionInfo): Promise<string> {
} else {
// We want to always overwrite files if the local cache already has them
const args = ["xz"]
if (process.platform.toString() != "darwin") {
if (!["darwin", "freebsd"].includes(process.platform.toString())) {
args.push("--overwrite")
}
extractedDir = await tc.extractTar(archivePath, process.env.HOME, args)
+14 -2
View File
@@ -205,19 +205,31 @@ async function runLint(binPath: string): Promise<void> {
const experimental = core.getInput(`experimental`).split(`,`)
const noGroup = experimental.includes(`no-run-logs-group`)
if (experimental.includes(`automatic-module-directories`)) {
const wds = modulesAutoDetection(workingDirectory)
const cwd = process.cwd()
for (const wd of wds) {
await core.group(`run golangci-lint in ${path.relative(cwd, wd)}`, () => runGolangciLint(binPath, wd))
await optionalGroup(noGroup, `run golangci-lint in ${path.relative(cwd, wd)}`, () => runGolangciLint(binPath, wd))
}
return
}
await core.group(`run golangci-lint`, () => runGolangciLint(binPath, workingDirectory))
await optionalGroup(noGroup, `run golangci-lint`, () => runGolangciLint(binPath, workingDirectory))
}
async function optionalGroup<T>(noGroup: boolean, name: string, fn: () => Promise<T>): Promise<T> {
if (noGroup) {
core.info(name)
return fn()
}
return core.group(name, fn)
}
export async function run(): Promise<void> {
+27
View File
@@ -67,6 +67,12 @@ const isLessVersion = (a: Version, b: Version): boolean => {
const getRequestedVersion = (): Version => {
let requestedVersion = core.getInput(`version`)
let versionFilePath = core.getInput(`version-file`)
if (requestedVersion && versionFilePath) {
core.warning(`Both version (${requestedVersion}) and version-file (${versionFilePath}) inputs are specified, only version will be used`)
}
const workingDirectory = core.getInput(`working-directory`)
let goMod = "go.mod"
@@ -83,6 +89,27 @@ const getRequestedVersion = (): Version => {
}
}
if (requestedVersion == "" && versionFilePath) {
if (workingDirectory) {
versionFilePath = path.join(workingDirectory, versionFilePath)
}
if (!fs.existsSync(versionFilePath)) {
throw new Error(`The specified golangci-lint version file at: ${versionFilePath} does not exist`)
}
const content = fs.readFileSync(versionFilePath, "utf-8")
if (path.basename(versionFilePath) === ".tool-versions") {
// asdf/mise file.
const match = content.match(/^golangci-lint\s+([^\n#]+)/m)
requestedVersion = match ? "v" + match[1].trim().replace(/^v/gi, "") : ""
} else {
// .golangci-lint-version file.
requestedVersion = "v" + content.trim().replace(/^v/gi, "")
}
}
const parsedRequestedVersion = parseVersion(requestedVersion)
if (parsedRequestedVersion == null) {
return null