golangci-lint-action icon indicating copy to clipboard operation
golangci-lint-action copied to clipboard

GitHub Annotations suppresses normal output

Open directionless opened this issue 4 years ago • 9 comments
trafficstars

Welcome

  • [X] Yes, I'm using a binary release within 2 latest major releases. Only such installations are supported.
  • [X] Yes, I've searched similar issues on GitHub and didn't find any.
  • [X] Yes, I've included all information below (version, config, etc).
  • [X] Yes, I've tried with the standalone linter if available. (https://golangci-lint.run/usage/linters/)

Description of the problem

I really love that the github action supports annotations. But when using it, there is minimal other output. Specifically, while the message is printed, it lacks the file/line number. (And at least sometimes, Github itself doesn't display anything at all)

Everything is in the annotations, but those don't display properly in a couple of cases:

  1. Newly added linters may find things outside the PR. Those annotations are not displayed anywhere. (There's a note that they happened, but no link to a file and line number
  2. If there are a lot of failures, having a clear list would be helpful

I'm not sure if this is a bug or a feature request...

I'd suggest either a normal print along side the github actions print, or allowing multiple out-formats to be specified.

Version of golangci-lint

github actions
      - uses: actions/checkout@v2
      - name: golangci-lint
        uses: golangci/golangci-lint-action@v2
        with:
          version: v1.42

Configuration file

N/A

Go environment

GitHub Actions

Verbose output of running

No Output:

No Output

Minimal Output:

Minimal Output

None of those include file/line number

Code example or link to a public repository

https://github.com/kolide/launcher/runs/4039960409?check_suite_focus=true

directionless avatar Oct 28 '21 23:10 directionless

Hey, thank you for opening your first Issue ! 🙂 If you would like to contribute we have a guide for contributors.

boring-cyborg[bot] avatar Oct 28 '21 23:10 boring-cyborg[bot]

I think this is a limitation of how the underlying golangci-lint output options work

directionless avatar Oct 29 '21 01:10 directionless

Another possible solution is to ensure the annotation text itself contains the file and line number. For example, if I have an incorrect workflow file, I get: incorrect workflow

directionless avatar Oct 29 '21 11:10 directionless

I solved this issue by running the linter two times:

  1. GitHub action, it will install the linter and report the issues as annotations
  2. simple step with run: golangci-lint run, it will report all issues as normal output and it will use the cache from first step, pretty fast step

SVilgelm avatar Oct 29 '21 17:10 SVilgelm

@ldez this is not a bug, it is a limitation of the output format, probably we can allow to define multiple output formats

SVilgelm avatar Oct 29 '21 17:10 SVilgelm

My first thought had been multiple output formats, but on some reflection, just including the file/line number in the annotation maybe cleaner. Or both. I'm happy to try to put up a PR, though I don't know which of the 3 approaches is likely to be accepted.

directionless avatar Oct 29 '21 19:10 directionless

I would really like the file + line number context in both areas as well.

Emyrk avatar Apr 22 '22 18:04 Emyrk

In golangci-lint it's now possible to have multiple output formats. Maybe it requires some changes inside the GitHub Action.

ldez avatar Apr 22 '22 19:04 ldez

the problem of running lint twice makes the github page show error twice as well, e.g. image

but it still much better than no output. in some cases, not just line number but the detail error message will be eaten

zfy0701 avatar Aug 10 '22 11:08 zfy0701