Skip to content

Commit

Permalink
docs: improve integrations and install pages (#4719)
Browse files Browse the repository at this point in the history
  • Loading branch information
ldez committed May 12, 2024
1 parent 27355d9 commit 78ade26
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 28 deletions.
Binary file modified docs/src/docs/welcome/annotations.png
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
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

0 comments on commit 78ade26

Please sign in to comment.