go - 无法为 golang 设置 gitlab ci

标签 go gitlab-ci

以下是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 错误地识别导入如下并失败:

enter image description here

enter image description here

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

enter image description here

将 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/

    相关文章:

    go - 如何配置 go 命令以使用代理?

    go - 在 Go 中命名我的代码

    docker - GitLab-CI 多运行器启动 docker 容器

    vue.js - 在 gitlab-ci 中对 VueJS 应用程序进行端到端测试

    Go:数组和映射必须是不同的概念/特征吗?

    go - 如何在特定文件夹中运行 shell 命令

    go - 从控制台读取多字串

    python - 如何使用 gitlab-ci 管理相互依赖的轮子的测试/构建

    angular - eva-icons@1.1.3、@angular/compiler@8.2.14、@angular/core@8.2.14 的 npm WARN tarball tarball 数据似乎已损坏

    environment-variables - 在 GitLab CI 中将环境变量从一个阶段导出到下一个阶段