Skip to content

docs: improve integrations and install pages #4719

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 12, 2024
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
Binary file modified docs/src/docs/welcome/annotations.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/docs/welcome/colored-line-number.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 30 additions & 23 deletions docs/src/docs/welcome/install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,28 @@ title: "Install"

Most installations of `golangci-lint` are performed for CI.

It's important to have reproducible CI: don't start to fail all builds at the same time.
With golangci-lint this can happen if you use option `--enable-all` and a new linter is added
or even without `--enable-all` when one upstream linter is upgraded.

**IMPORTANT**: It's highly recommended installing a specific version of golangci-lint available on the [releases page](https://github.com/golangci/golangci-lint/releases).

### GitHub Actions

We recommend using [our GitHub Action](https://github.com/golangci/golangci-lint-action) for running `golangci-lint` in CI for GitHub projects.

It's [fast and uses smart caching](https://github.com/golangci/golangci-lint-action#performance) inside,
and it can be much faster than the simple binary installation.

Also, the action creates GitHub annotations for found issues: you don't need to dig into build log to see found by `golangci-lint` issues:
![Log output of the action](./colored-line-number.png)

Also, the action creates GitHub annotations for found issues (you don't need to dig into build log to see found by `golangci-lint` issues):

![GitHub annotations of the action](./annotations.png)

### Other CI

It's important to have reproducible CI: don't start to fail all builds at the same time.
With golangci-lint this can happen if you use option `--enable-all` and a new linter is added
or even without `--enable-all` when one upstream linter is upgraded.

**IMPORTANT**: It's highly recommended installing a specific version of golangci-lint available on the [releases page](https://github.com/golangci/golangci-lint/releases).

Here is the recommended way to install golangci-lint {.LatestVersion}:
Here is the other way to install golangci-lint:

```sh
# binary will be $(go env GOPATH)/bin/golangci-lint
Expand Down Expand Up @@ -55,23 +58,11 @@ golangci-lint --version

On Windows, you can run the above commands with Git Bash, which comes with [Git for Windows](https://git-scm.com/download/win).

### Docker

```sh
docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```

Preserving cache between consecutive runs:
```sh
docker run --rm -v $(pwd):/app -v ~/.cache/golangci-lint/{.LatestVersion}:/root/.cache -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```
### Linux

Colored output:
```sh
docker run -t --rm -v $(pwd):/app -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```
Golangci-lint is available inside the majority of the package managers.

### macOS
### MacOS

#### Brew

Expand Down Expand Up @@ -123,6 +114,22 @@ scoop install main/golangci-lint

The scoop package is not officially maintained by golangci team.

### Docker

```sh
docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```

Preserving cache between consecutive runs:
```sh
docker run --rm -v $(pwd):/app -v ~/.cache/golangci-lint/{.LatestVersion}:/root/.cache -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```

Colored output:
```sh
docker run -t --rm -v $(pwd):/app -w /app golangci/golangci-lint:{.LatestVersion} golangci-lint run -v
```

### Install from Source

Note: such `go install`/`go get` installation aren't guaranteed to work. We recommend using binary installation.
Expand Down
13 changes: 8 additions & 5 deletions docs/src/docs/welcome/integrations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ There is a [plugin](https://github.com/SublimeLinter/SublimeLinter-golangcilint)

How to configure:

- Install [plugin](https://plugins.jetbrains.com/plugin/12496-go-linter)
- Install [plugin](https://plugins.jetbrains.com/plugin/12496-go-linter).
- Add [File Watcher](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html) using existing `golangci-lint` template.
- If your version of GoLand does not have the `golangci-lint` [File Watcher](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html) template you can configure your own and use arguments `run --disable=typecheck $FileDir$`.

Expand All @@ -35,15 +35,18 @@ How to configure:
There are available plugins:

- [Spacemacs](https://github.com/syl20bnr/spacemacs/blob/develop/layers/+lang/go/README.org#linting)
- [flycheck checker](https://github.com/weijiangan/flycheck-golangci-lint).
- [Flycheck checker](https://github.com/weijiangan/flycheck-golangci-lint)

### Vim

The following plugins support `golangci-lint`:

- [vim-go](https://github.com/fatih/vim-go);
- [ALE](https://github.com/w0rp/ale);
- [Syntastic](https://github.com/vim-syntastic/syntastic).
- [vim-go](https://github.com/fatih/vim-go)
- [ALE](https://github.com/w0rp/ale)

### LSP Server

- [golangci-lint-langserver](https://github.com/nametake/golangci-lint-langserver) (NeoVim, Vim, Emacs, ...)

## Shell Completion

Expand Down
Loading