Compare commits

...

5 Commits

Author SHA1 Message Date
66883b5fcf dev: change icon and color on GitHub marketplace 2020-05-05 17:57:46 +03:00
8ea3043ee4 docs: improve info about performance 2020-05-05 17:51:32 +03:00
95f6eefffa docs: add perf stat into README.md 2020-05-05 17:36:44 +03:00
977a01f96c Merge pull request #8 from golangci/fix-go.mod-hash
fix go.mod hashsum
2020-05-05 17:20:28 +03:00
13e2c1f984 fix go.mod hashsum 2020-05-05 17:17:46 +03:00
6 changed files with 18 additions and 7 deletions

View File

@ -2,9 +2,10 @@
[![Build Status](https://github.com/golangci/golangci-lint-action/workflows/build-and-test/badge.svg)](https://github.com/golangci/golangci-lint-action/actions)
![GitHub Annotations](./static/annotations.png)
It's the official GitHub action for [golangci-lint](https://github.com/golangci/golangci-lint) from it's authors.
The action runs [golangci-lint](https://github.com/golangci/golangci-lint) and reports issues from linters.
The action that runs [golangci-lint](https://github.com/golangci/golangci-lint) and reports issues from linters.
![GitHub Annotations](./static/annotations.png)
## How to use
@ -57,6 +58,13 @@ The action was implemented with performance in mind:
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.
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:
* 13s to download Go
* 4s to restore 50 MB of cache
* 1s to find and install `golangci-lint`
* 1s to run `golangci-lint` (it takes 35s without cache)
## Internals
We use JavaScript-based action. We don't use Docker-based action because:

View File

@ -19,5 +19,5 @@ runs:
main: 'dist/run/index.js'
post: 'dist/post_run/index.js'
branding:
icon: 'check-circle'
color: 'blue'
icon: 'shield'
color: 'yellow'

View File

@ -27904,7 +27904,7 @@ function buildCacheKeys() {
keys.push(cacheKey);
if (yield pathExists(`go.mod`)) {
// Add checksum to key to invalidate a cache when dependencies change.
cacheKey += yield checksumFile(`cache-key`, `go.mod`);
cacheKey += yield checksumFile(`sha1`, `go.mod`);
}
else {
cacheKey += `nogomod`;

2
dist/run/index.js vendored
View File

@ -27916,7 +27916,7 @@ function buildCacheKeys() {
keys.push(cacheKey);
if (yield pathExists(`go.mod`)) {
// Add checksum to key to invalidate a cache when dependencies change.
cacheKey += yield checksumFile(`cache-key`, `go.mod`);
cacheKey += yield checksumFile(`sha1`, `go.mod`);
}
else {
cacheKey += `nogomod`;

3
go.mod Normal file
View File

@ -0,0 +1,3 @@
module github.com/golangci/golangci-lint-action
go 1.14

View File

@ -42,7 +42,7 @@ async function buildCacheKeys(): Promise<string[]> {
if (await pathExists(`go.mod`)) {
// Add checksum to key to invalidate a cache when dependencies change.
cacheKey += await checksumFile(`cache-key`, `go.mod`)
cacheKey += await checksumFile(`sha1`, `go.mod`)
} else {
cacheKey += `nogomod`
}