Gitlab CI&CD 子模块拉取

Gitlab CI&CD 子模块拉取

最近在使用gitlabCI的时候发现子模块的拉取,以及某些个项目内部使用脚本拉取第三方库的时候都需要项目的私钥。刚开始是直接在镜像中存在私钥,这就存在着只要获取了镜像就能获取私钥了,后面发现了gitlabci可以传递变量,那就可以完美解决这一个问题,现在先记录下。

  • 在git项目中的Settings -> CI / CD -> Variables中添加私钥
    Gitlab CI&CD 子模块拉取
  • 在.gitlab-ci.yml中增加脚本
before_script:
  # 添加私钥
  - eval `ssh-agent -s`
  - ssh-add <(echo "$SSH_PRIVATE_KEY")
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
  # 拉取子模块
  - git submodule sync --recursive
  - git submodule update --init --recursive