Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Consolidate lint steps in GitHub Actions
Like with running Go tests, the lints for each separate Go module must be running separately. This is currently being accomplished in CI by giving each Go module its own lint job using golangci-lint's GitHub Action. Unfortunately, this is really not working out well. Although the lints themselves are all very fast to run (just a couple seconds), the post run step where it saves it cache is quite slow, about two minutes, and that's happening for each of the lint steps, making the entire lint job take almost _ten minutes_ to run. I think what might've been happening is that each lint job was overwriting the last job's cache, which is why each post run step seemed to be doing so much work. I didn't validate this hypothesis, but it seems like a strong possibility. Here, try to hack around the problem by having the main lint job fetch golangci-lint, but then only run `--help`, and then do the real linting as a separate step (one that doesn't use the GitHub Action) that calls into our `make lint` target to run lints for each Go module. A downside is that it may not annotate lint problems on the GitHub PR, which is something that theoretically happened before, although it never seemed to work for me. This might not be that bad though because it could as a side effect improve the log output, which is terrible for the GitHub Action step because it doesn't include files or line numbers. Also, I notice that the lints/tests in `Makefile` had been commented out for `./cmd/river` for some reason (maybe something I did during the driver refactor and forgot to fix), so I uncommented them. [1] golangci/golangci-lint-action#271
- Loading branch information