【问题标题】:Run lint on golang repo in travis在 travis 的 golang repo 上运行 lint
【发布时间】:2018-11-18 17:16:18
【问题描述】:

我在我的项目上本地运行以下命令

gometalinter --config=gometalinter.json ./...

一开始我遇到了一些错误,我都修复了!

现在我在 Travis 脚本中运行相同的命令 exaclty 我得到了像

这样的供应商错误
vendor/github.com/spf13/viper/flags.go:3:8:warning: error return value not checked (could not import github.com/spf13/pflag (go/build: importGo github.com/spf13/pflag: exit status 1) (errcheck)
vendor/github.com/spf13/viper/viper.go:42:7:warning: error return value not checked (could not import github.com/pelletier/go-toml (go/build: importGo github.com/pelletier/go-toml: exit status 1) (errcheck)

这是配置的gometalinter.json

{
  "vendor": true,
  "Deadline": "2m",
  "Sort": [
    "linter",
    "severity"
  ],
  "DisableAll": true,
  "Enable": [
    "gotypex",
    "vetshadow",
    "errcheck",
    "gocyclo",
    "vet",
    "golint",
    "vetshadow",
    "ineffassign",


  ],
  "Cyclo": 10,
  "LineLength": 120
}

我不明白为什么在本地我没有收到此错误(我有供应商回购)以及为什么它要求供应商错误?可能是什么原因 ?

【问题讨论】:

    标签: go travis-ci travis-ci-cli golint


    【解决方案1】:

    gometalinter 在您的路径中运行二进制文件以进行检查。我的 CI 会有一组二进制版本,而我的本地开发环境会有不同的版本时遇到过问题。

    尝试在本地计算机上更新所有必需的二进制文件。

    【讨论】:

    • 我运行gometalinter --install --force,但我仍然没有在 travis 上看到本地错误。任何的想法?我使用 gometalinter 的v2.0.11
    【解决方案2】:

    尝试--vendor 标志并检查gometalinter 的版本以及所有使用的linter。

    gometalinter documentation中提取:

    如何使 gometalinter 与 Go 1.5 供应商一起使用?

    gometalinter 有一个 --vendor 标志,它只是设置 GO15VENDOREXPERIMENT=1,但是底层工具必须支持它。 确保所有 linter 都是最新的并使用 Go 1.5 构建 (gometalinter --install --force) 然后运行 ​​gometalinter --vendor .. 应该是这样的。

    【讨论】:

    • 谢谢我已经尝试过run gometalinter --install --force 并且当我在本地运行时我仍然没有收到任何错误,就在我在 Travis 上运行它时。奇怪的是,我在 travis 和配置 json 中使用 --vendor 运行它,但我仍然收到有关供应商包的警告......,任何想法,提示它可能是什么?
    • 在本地环境和 travis 中检查 errcheck 的版本
    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 2018-02-10
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多