为什么 linting in Github Actions 在本地运行时不起作用?

Why doesn't linting in Github Actions work when it does locally?

我正在构建一个 Go 项目,并且我在每次签入时都使用 Github 操作。

项目在这里:https://github.com/filecoin-project/bacalhau

当我在本地 运行 项目时,它 运行 没问题 - 例如:

❯ golangci-lint run
❯

但是当我在 Github 操作中执行相同的命令时,我收到警告,好像我没有正确地在模块中销售(猜测)。

  Error: undeclared name: `libp2p` (typecheck)
  Error: undeclared name: `libp2p` (typecheck)
  Error: undeclared name: `libp2p` (typecheck)
  Error: "github.com/libp2p/go-libp2p" imported but not used (typecheck)
  
  Error: issues found

即使我删除了 linting,我也会遇到类似的问题(它没有正确构建 - 例如 https://github.com/filecoin-project/bacalhau/runs/5313987141?check_suite_focus=true

ONE 我自己通过 ssh 登录并手动执行构建(例如 go build)失败并出现相同的错误,但这是可以解决的只需内联 go mod vendorgo mod tidy。然而,这不应该是必要的,对吧?因为我签入了供应商目录?

我错过了什么?谢谢!

我通过清除 /vendor 目录中的所有内容并 .gitignoring 解决了这个问题。这迫使 GitHub 操作重新下载所有内容。不确定这是否是最有效的解决方案,但对我有用!