无法为golang设置gitlab ci

p4tfgftt  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(162)

下面是我的gitlab golang ci项目的before_script

before_script:
  - git config --global url."git@gitlab.com:".insteadOf "https://gitlab.com/"
  - apt-get update -qq
  - apt-get install -qq git
  - 'which ssh-agent || ( apt-get install -qq openssh-client )'
  - eval $(ssh-agent -s)
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir ~/.ssh
  - ssh-keyscan -t rsa devsb01 >> ~/.ssh/known_hosts
  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  - git remote set-url origin git@gitlab.com/<gitlabusername>/projectName.git
  - mkdir -p /go/src/gitlab.com/projectName /go/src/_/builds
  - cp -r $CI_PROJECT_DIR /go/src/gitlab.com/projectName
  - ls $CI_PROJECT_DIR
  - echo $PWD && ls
  - make dep

这里dep目标的Makefile如下:

dep:
    cd src;go get -v -d ./...;

但是CI如下错误地识别导入并失败:

问题是go get不知何故试图克隆不存在的projectname/src.git。

将fileUploader和测试移动到src目录可以解决问题,但是将它们移动到src目录中的新控制器目录会失败

mqkwyuun

mqkwyuun1#

尝试删除此
git config --global url."git@gitlab.com:".insteadOf "https://gitlab.com/"
以及与SSH密钥相关的所有内容
并添加以下行

  • echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc

.netrc将允许您访问私有存储库,对于gitlab CI,您不需要处理ssh密钥。

相关问题