gitlab - 在 Gitlab CI 中初始化私有子模块的问题
问题描述
我已经尝试了几天没有成功。希望有人可以帮助我。
我有一个私有存储库(我拥有),它有一个私有子模块(我也拥有),我正在尝试使用 gitlab CI 来获取我的二进制文件,这只是来自乳胶构建的 pdf。问题是当管道被触发时,我无法访问子模块来初始化它。我已遵循 此文档,即添加私有和公共 ssh 密钥,但没有成功。
这是我的 gitlab yaml 的样子,取自文档。我还添加了我的变量和部署密钥(我在主仓库和子模块中都尝试过)
image: registry.gitlab.com/islandoftex/images/texlive:latest
default:
before_script:
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keyscan gitlab.com >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
build_compendium:
when: always
variables:
GIT_SUBMODULE_STRATEGY: recursive # Sometimes I add this, according to https://docs.gitlab.com/ee/ci/git_submodules.html
script:
# I HAVE TRIED DIFFERENT THINGS HERE, LIKE git submodule, git clone, etc...
- pdflatex -synctex=1 -interaction=nonstopmode main.tex
- pdflatex -synctex=1 -interaction=nonstopmode main.tex
artifacts:
expire_in: 1 day
paths:
- "main.pdf"
我最常遇到的错误是我被要求提供凭据,在管道构建期间我无法提供,或者我收到一条消息说我无权访问子模块。
我只知道一些关于 ssh 协议以及如何使用它连接到服务器的基础知识,但我可能会遗漏一些东西。
非常感激你的帮助。
解决方案
推荐阅读
- python - VsCode 中的 Matplotlib 使用 1e6 和整数显示图形,而不是我当前练习所需的浮点数。(Python 速成课程)
- javascript - 识别调用onclick函数的id 不同id标签的onclick函数
- php - php创建的图像不显示
- javascript - Chart.js 在 setInterval 之后没有更新( setInterval 没有执行)
- javascript - 带有 mousedown 的鼠标悬停事件
- html - 在 hexo...ejs 文件中,折叠不适用于嵌套列表
- c - %rax 初始化为什么?
- ubuntu - /bin/sh: 0: 无法打开 ROOT=$(dirname $0)/
- yii2 - Yii2微框架如何更改端口
- php - Flutter http.post 发送空正文