В Gitlab CI мне нужно указать GITLAB_DEPLOY_TOKEN
, так как у меня есть несколько частных репозиториев. Это хорошо работает на этапе компиляции.
Но когда я запускаю golint, он снова загружает все зависимости и не работает с частными. Я мог бы добавить ту же директиву git config
,
изображение: переменные golang: PACKAGE_PATH: /go/src/gitlab.com/company/sam/daemon PACKAGE_API_NAME: registry.gitlab.com/company/sam/daemon REGISTRY_URL: https://registry.gitlab.com DOCKER_DRIVER: оверлей GO111MODULE:" on "
.anchors: - & inject-gopath mkdir -p $ (имя каталога $ {PACKAGE_PATH}) && ln -s $ {CI_PROJECT_DIR} $ {PACKAGE_PATH} && cd $ {PACKAGE_PATH}
compile:
stage: build
before_script:
- *inject-gopath
- git config --global url."https://oauth:${GITLAB_DEPLOY_TOKEN}@gitlab.com".insteadOf https://gitlab.com
- go mod tidy
script: GOOS=linux GOARCH=arm GOARM=7 go build -o release/daemon .
artifacts:
name: "binary-$CI_PIPELINE_ID"
paths:
- $GOPATH/pkg/mod/
expire_in: 1 hour
lint:
stage: test
before_script:
- apt install -y curl git
- go get github.com/golang/lint
- *inject-gopath
script:
- $GOPATH/bin/golint -set_exit_status $(go list ./...)
allow_failure: true
Я прочитал здесь, что модули go были кэшированы в $GOPATH/pkg/mod
, но это не так. похоже, не работает
Есть идеи, как мне это исправить?
golint
поддерживает модули? (github.com/golang/lint/issues/409) - person JimB   schedule 24.06.2019inject-gopath
? - person Isaac Kleinman   schedule 24.06.2019