Запусти линт на Голан Репо в Трэвисе
Я запускаю локально на моем проекте следующую команду
gometalinter --config=gometalinter.json ./...
в начале я получил некоторые ошибки, и я их все исправил!
Теперь я запускаю ту же команду в Exaclty в Travis
сценарий, и я получил ошибки поставщика, как
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
}
Я не понимаю, почему локально я не получаю эту ошибку (я являюсь репо вендора) и почему он запрашивает ошибку вендора? Что может быть причиной?
2 ответа
Пытаться --vendor
помечать и проверять версии gometalinter
и все используемые линтеры.
Выписка из гометалинтера документации:
Как заставить gometalinter работать с вендорами Go 1.5?
У gometalinter есть флаг --vendor, который просто устанавливает GO15VENDOREXPERIMENT=1, однако базовые инструменты должны его поддерживать. Убедитесь, что все линтеры обновлены и собраны с помощью Go 1.5 (gometalinter --install --force), затем запустите gometalinter --vendor. Это должно быть так.
gometalinter
запускает двоичные файлы на вашем пути, чтобы выполнить проверку. У меня были проблемы, когда у моего CI был бы один набор двоичных версий, в то время как у моей локальной среды разработки были бы разные версии.
Попробуйте обновить все необходимые двоичные файлы на вашем локальном компьютере.