首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jenkins管道中将git标签推送到远程?

如何在Jenkins管道中将git标签推送到远程?
EN

Stack Overflow用户
提问于 2017-12-25 12:31:39
回答 1查看 5.5K关注 0票数 3

根据这里提到的官方教程,我正在为我的项目构建一个CI流

构建一个Node.js并与npm反应应用程序

在我的流程中有一些要点:

  1. 我对这个流程的计划是构建源代码,创建一个Git标记,并将标记推送到Jenkins服务器上的远程Git服务器。
  2. 该项目执行公共读取访问,并通过ssh协议从私有Git服务器上提取,该服务器承载一个GitLab服务。
  3. BlueOcean UI使用多分支管道构建CI流,并为我提供了一个带有ID:jenkins-generated-ssh-key的ssh公钥。我已将其提交给GitLab ssh设置。
  4. 我的项目的根目录包含Jenkinsfile。

文件内容:

代码语言:javascript
复制
pipeline {
    agent { docker 'node:6' }
    stages {
        stage('Build') {
            steps {
                sh 'npm run test'
                sh 'npm run build'
            }
        }
        stage('Deploy') {
            steps {
                sshagent (credentials: ['jenkins-generated-ssh-key']) {
                    sh 'git push --tags'
                }
            }
        }
    }
}

“构建”阶段包含git提交和标记步骤。所有推送标签的东西都准备好了。

每次在执行“部署”阶段时,执政者都会在推送git标签之前被杀死。

代码语言:javascript
复制
[Pipeline] sshagent
[ssh-agent] Using credentials fe (jenkins-generated-ssh-key)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
$ docker exec d2ba3af75c0e5826d3d00676ebba523117a541d9015ee77c74106862d2665025 env ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-dewb3KyPiizc/agent.130
SSH_AGENT_PID=134
$ docker exec d2ba3af75c0e5826d3d00676ebba523117a541d9015ee77c74106862d2665025 env SSH_AGENT_PID=134 SSH_AUTH_SOCK=/tmp/ssh-dewb3KyPiizc/agent.130 ssh-add /var/jenkins_home/workspace/achilles_master-GZG6BNOXJZHXAGELOPVE2O57MTLCFCSFEEMQVJOWKHCSAQDCMS4Q@tmp/private_key_838589255993535437.key
Identity added: /var/jenkins_home/workspace/achilles_master-GZG6BNOXJZHXAGELOPVE2O57MTLCFCSFEEMQVJOWKHCSAQDCMS4Q@tmp/private_key_838589255993535437.key (rsa w/o comment)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
$ docker exec d2ba3af75c0e5826d3d00676ebba523117a541d9015ee77c74106862d2665025 env SSH_AGENT_PID=134 SSH_AUTH_SOCK=/tmp/ssh-dewb3KyPiizc/agent.130 ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 134 killed;
[ssh-agent] Stopped.
[achilles_master-GZG6BNOXJZHXAGELOPVE2O57MTLCFCSFEEMQVJOWKHCSAQDCMS4Q] Running shell script
+ git push --tags
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已经尝试过多次调整Jenkinsfile文件,并且我发现如果这个步骤是'git push‘或'ssh -T git@git.xxx',它将不会得到ssh代理包装内部步骤。那我就被拒绝了。ssh代理在执行ssh连接之前总是会被杀死,但通常会包装其他步骤,这些步骤通常不需要ssh auth。

EN

回答 1

Stack Overflow用户

发布于 2019-11-28 13:16:42

主机密钥验证failed.fatal:无法从远程存储库读取。

要解决上述错误,我们需要手动ssh一次或使用此参数。

StrictHostKeyChecking=no

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47968654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档