Compare commits
81 Commits
5545aac6a3
...
v4.0.0
Author | SHA1 | Date | |
---|---|---|---|
|
3cfe3a4abb | ||
|
cbc59cf0d1 | ||
|
459a04b021 | ||
|
e2315b67db | ||
|
d6173a45d0 | ||
|
0e8f5bf773 | ||
|
349d20632d | ||
|
2221aee284 | ||
|
3b44ae5b24 | ||
|
323b871bbc | ||
|
a23373f4c8 | ||
|
e38f944096 | ||
|
3c5e1cac39 | ||
|
0f1139540c | ||
|
81218f8e0c | ||
|
cc439c2555 | ||
|
3efd423e8d | ||
|
effc519e1b | ||
|
cfaf0f0750 | ||
|
86abc3c6d2 | ||
|
c5ba143a4c | ||
|
a9d24cbbd7 | ||
|
2e6adf08a9 | ||
|
1c2ceb7f27 | ||
|
5f85afe386 | ||
|
05d79cc0e4 | ||
|
edcd1211b8 | ||
|
eb69bf92e7 | ||
|
92ed864d2e | ||
|
3eeea96a33 | ||
|
c701339303 | ||
|
e03e943597 | ||
|
50372b6518 | ||
|
b6b6b379de | ||
|
7d8fef21df | ||
|
0d0b9c12e8 | ||
|
7989493c23 | ||
|
f7e7174579 | ||
|
46a279bd0a | ||
|
4f796ce6b5 | ||
|
dd7bdbe4bf | ||
|
5e13907514 | ||
|
c0b0a00641 | ||
|
88688a2400 | ||
|
a50083874e | ||
|
8e84a3001a | ||
|
9a8fa77b90 | ||
|
677d5e3b79 | ||
|
abd6e0ea0b | ||
|
7778b2da3c | ||
|
bfee5ee11d | ||
|
608f9e14ec | ||
|
9381bb2c2c | ||
|
17e44d79cb | ||
|
25ef9ca970 | ||
|
170a3a0cf1 | ||
|
a76f44e7d8 | ||
|
8fa7dff7b9 | ||
|
face0856de | ||
|
ec66a939a9 | ||
|
c44dc93f23 | ||
|
d2a0133e31 | ||
|
455de4e66d | ||
|
61c1a4a9f5 | ||
|
604fe72b13 | ||
|
3c85045f6e | ||
|
d9fc28500d | ||
|
7d357a3513 | ||
|
b45661bc10 | ||
|
31c68b6041 | ||
|
d27d0c27ac | ||
|
4b1e98b37d | ||
|
5a72764667 | ||
|
30416f05a0 | ||
|
a555e8cdd0 | ||
|
c8710f274e | ||
|
40776d7557 | ||
|
9cb5ef734c | ||
|
62f96762dd | ||
|
84072ff78e | ||
|
a625c15a6b |
4
.github/workflows/codeql.yaml
vendored
4
.github/workflows/codeql.yaml
vendored
@@ -31,7 +31,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
with:
|
||||
language: 'javascript'
|
||||
@@ -41,4 +41,4 @@ jobs:
|
||||
npm run all
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
|
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@@ -60,7 +60,7 @@ jobs:
|
||||
pull-requests: read
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
cache: false # setup-go v4 caches by default
|
||||
- uses: ./
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
pull-requests: read
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
cache: false # setup-go v4 caches by default
|
||||
- uses: ./
|
||||
@@ -111,7 +111,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
cache: false # setup-go v4 caches by default
|
||||
- uses: ./
|
||||
|
28
README.md
28
README.md
@@ -82,7 +82,7 @@ because different jobs [run in parallel](https://help.github.com/en/actions/gett
|
||||
|
||||
### Multiple OS Support
|
||||
|
||||
If you need to run linters for specific operating systems, you will need to use `v2` of the action. Here is a sample configuration file:
|
||||
If you need to run linters for specific operating systems, you will need to use the action `>=v2`. Here is a sample configuration file:
|
||||
|
||||
```yaml
|
||||
name: golangci-lint
|
||||
@@ -136,7 +136,7 @@ jobs:
|
||||
# install-mode: "goinstall"
|
||||
```
|
||||
|
||||
You will also likely need to add the following `.gitattributes` file to ensure that line endings for windows builds are properly formatted:
|
||||
You will also likely need to add the following `.gitattributes` file to ensure that line endings for Windows builds are properly formatted:
|
||||
|
||||
```.gitattributes
|
||||
*.go text eol=lf
|
||||
@@ -144,12 +144,24 @@ You will also likely need to add the following `.gitattributes` file to ensure t
|
||||
|
||||
## Comments and Annotations
|
||||
|
||||
Currently, GitHub parses the action's output and creates [annotations](https://github.community/t5/GitHub-Actions/What-are-annotations/td-p/30770).
|
||||
Currently, GitHub parses the action's output and creates [annotations](https://github.blog/2018-12-14-introducing-check-runs-and-annotations/).
|
||||
|
||||
The restrictions of annotations are the following:
|
||||
|
||||
1. Currently, they don't support markdown formatting (see the [feature request](https://github.community/t5/GitHub-API-Development-and/Checks-Ability-to-include-Markdown-in-line-annotations/m-p/56704))
|
||||
2. They aren't shown in list of comments like it was with [golangci.com](https://golangci.com). If you would like to have comments - please, up-vote [the issue](https://github.com/golangci/golangci-lint-action/issues/5).
|
||||
2. They aren't shown in the list of comments like it was with [golangci.com](https://golangci.com). If you would like to have comments - please, up-vote [the issue](https://github.com/golangci/golangci-lint-action/issues/5).
|
||||
|
||||
To enable annotations, you need to add the `checks' permission to your action.
|
||||
|
||||
```yaml annotate
|
||||
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
|
||||
# Optional: Allow write access to checks to allow the action to annotate code in the PR.
|
||||
checks: write
|
||||
```
|
||||
|
||||
## Performance
|
||||
|
||||
@@ -157,7 +169,7 @@ The action was implemented with performance in mind:
|
||||
|
||||
1. We cache data by [@actions/cache](https://github.com/actions/toolkit/tree/master/packages/cache) between builds: Go build cache, Go modules cache, golangci-lint analysis cache.
|
||||
2. We don't use Docker because image pulling is slow.
|
||||
3. We do as much as we can in parallel, e.g. we download cache, go and golangci-lint binary in parallel.
|
||||
3. We do as much as we can in parallel, e.g. we download cache, go, and golangci-lint binary in parallel.
|
||||
|
||||
For example, in a repository of [golangci-lint](https://github.com/golangci/golangci-lint) running this action without the cache takes 50s, but with cache takes 14s:
|
||||
* in parallel:
|
||||
@@ -172,12 +184,12 @@ We use JavaScript-based action. We don't use Docker-based action because:
|
||||
1. docker pulling is slow currently
|
||||
2. it's easier to use caching from [@actions/cache](https://github.com/actions/toolkit/tree/master/packages/cache)
|
||||
|
||||
We support different platforms, such as `ubuntu`, `macos` and `windows` with `x32` and `x64` archs.
|
||||
We support different platforms, such as `ubuntu`, `macos`, and `windows` with `x32` and `x64` archs.
|
||||
|
||||
Inside our action we perform 3 steps:
|
||||
Inside our action, we perform 3 steps:
|
||||
|
||||
1. Setup environment running in parallel:
|
||||
* restore [cache](https://github.com/actions/cache) of previous analyzes
|
||||
* restore [cache](https://github.com/actions/cache) of previous analyses
|
||||
* fetch [action config](https://github.com/golangci/golangci-lint/blob/master/assets/github-action-config.json) and find the latest `golangci-lint` patch version
|
||||
for needed version (users of this action can specify only minor version of `golangci-lint`). After that install [golangci-lint](https://github.com/golangci/golangci-lint) using [@actions/tool-cache](https://github.com/actions/toolkit/tree/master/packages/tool-cache)
|
||||
2. Run `golangci-lint` with specified by user `args`
|
||||
|
26749
dist/post_run/index.js
generated
vendored
26749
dist/post_run/index.js
generated
vendored
File diff suppressed because one or more lines are too long
26749
dist/run/index.js
generated
vendored
26749
dist/run/index.js
generated
vendored
File diff suppressed because one or more lines are too long
1836
package-lock.json
generated
1836
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@@ -24,27 +24,27 @@
|
||||
"author": "golangci",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^3.2.2",
|
||||
"@actions/cache": "^3.2.4",
|
||||
"@actions/core": "^1.10.1",
|
||||
"@actions/exec": "^1.1.1",
|
||||
"@actions/github": "^5.1.1",
|
||||
"@actions/http-client": "^2.1.1",
|
||||
"@actions/github": "^6.0.0",
|
||||
"@actions/http-client": "^2.2.0",
|
||||
"@actions/tool-cache": "^2.0.1",
|
||||
"@types/node": "^20.8.0",
|
||||
"@types/semver": "^7.5.3",
|
||||
"@types/tmp": "^0.2.4",
|
||||
"@types/node": "^20.11.16",
|
||||
"@types/semver": "^7.5.6",
|
||||
"@types/tmp": "^0.2.6",
|
||||
"tmp": "^0.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
||||
"@typescript-eslint/parser": "^6.7.4",
|
||||
"@vercel/ncc": "^0.38.0",
|
||||
"eslint": "^8.50.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-import": "^2.28.1",
|
||||
"eslint-plugin-prettier": "^5.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^6.20.0",
|
||||
"@typescript-eslint/parser": "^6.20.0",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-simple-import-sort": "^10.0.0",
|
||||
"prettier": "^3.0.3",
|
||||
"typescript": "^5.2.2"
|
||||
"prettier": "^3.2.5",
|
||||
"typescript": "^5.3.3"
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user