下面是我的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目录中的新控制器目录会失败
1条答案
按热度按时间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密钥。