gpt4 book ai didi

gitlab - 如何从 gitlab CI 管道内推送到存储库?

转载 作者:行者123 更新时间:2023-12-02 06:46:27 26 4
gpt4 key购买 nike

在我的 CI 管道中,我正在生成一个工件 public/graph.png,它可以可视化代码的某些方面。在后面的步骤中,我想将其从 CI 管道内提交到存储库。这是 .gitlab-ci.yml 的相关部分:

commit-graph:
stage: pages
script:
- git config user.email "cipipeline@example.com"
- git config user.name "CI Pipeline"
- cd /group/project
- mv public/graph.png .
- git add graph.png
- git commit -m "committing graph.png [ci skip]"
- echo $CI_COMMIT_REF_NAME
- git push origin HEAD:$CI_COMMIT_REF_NAME

当管道在 gitlab 中运行时,它会失败并显示:

$ git config user.email "cipipeline@dhgitlab.dunnhumby.co.uk"
$ git config user.name "CI Pipeline"
$ cd /group/project
$ mv public/graph.png .
$ git add graph.png
$ git commit -m "committing graph.png [ci skip]"
[detached HEAD 22a50d1] committing graph.png [ci skip]
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 graph.png
$ echo $CI_COMMIT_REF_NAME
jamiet/my-branch
$ git push origin HEAD:$CI_COMMIT_REF_NAME
fatal: unable to access 'https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/group/project/project.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

不确定我做错了什么,并且对 SSL 的了解不够,无法理解该错误。谁能给点建议吗?

顺便说一句,我们自己托管 gitlab。

最佳答案

现在有一种更简洁的方法可以解决这个问题,无需使用 SSH,而是使用 project scoped access token ,另见this answer .

在 GitLab 项目中创建 project scoped access token所以它与项目相关,而不是与个人相关。接下来将此 token 存储为 GitLab CI/CD 变量。您现在可以使用以下命令进行连接:

push-back-to-remote:
script:
- git config user.email "my-email@email.com"
- git config user.name "ci-bot"
- git remote add gitlab_origin https://oauth2:$ACCESS_TOKEN@gitlab.com/path-to-project.git
- git add .
- git commit -m "push back from pipeline"
- git push gitlab_origin HEAD:main -o ci.skip # prevent triggering pipeline again

关于gitlab - 如何从 gitlab CI 管道内推送到存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51716044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com