以下是before_script
对于我的 gitlab golang ci 项目:
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 目录中的新 Controller 目录失败
最佳答案
尝试删除这个git config --global url."git@gitlab.com:".insteadOf "https://gitlab.com/"
以及与 SSH key 相关的所有内容
并添加这一行
echo -e "machine gitlab.com\nlogin gitlab-ci-token\npassword ${CI_JOB_TOKEN}" > ~/.netrc
.netrc
将允许您访问私有(private)仓库,对于 gitlab CI,您不需要处理 ssh key 。
关于go - 无法为 golang 设置 gitlab ci,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62112813/