从Jenkins推送到GitHub存储库时出错-无法使用Git Publisher

时间:2019-03-14 10:44:14

标签: git jenkins

我正在尝试使用

从Jenkins推送到GitHub存储库
git remote set-url origin git@github.com:$reponame.git
git checkout $branch
git add file
git commit -m "Add file"
git push origin $branch

但是我遇到了错误:

ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
ssh: /opt/bitnami/common/lib/libcrypto.so.1.0.0: no version information available (required by ssh)
Host key verification failed.

使用Git Publisher发布构建步骤解决该建议的所有答案。我无法使用Git Publisher,因为我定义了多个由$ reponame变量定义的SCM。

我尝试查看git show-ref的输出,这显示了GitHub存储库中的分支列表。

我不确定如何解决上述错误,对于此问题的任何帮助将不胜感激。

更新: 我已经能够成功推送,但是更改未反映在GitHub分支上。当我检查GitHub时,提交未添加到分支中。当我再次运行该作业时,推送将返回“所有最新信息”,这表示它推送到的分支已经进行了这些更改。
这个Git推推到哪里了?为何更改未反映在远程GitHub分支上?

3 个答案:

答案 0 :(得分:2)

对于mentioned here环境,与bitnami.com一样:

  

在Jenkins中配置Git存储库之前,您能否尝试运行xAmplitudes = ([0 for i, j in zip(x, width)]) yAmplitudes = centre_y x = np.array(xAmplitudes) #turn x,y data into numpy arrays y = np.array(yAmplitudes) fig = plt.figure() #create a canvas, tell matplotlib it's 3d ax = fig.add_subplot(111, projection='3d') #make histogram stuff - set bins - I choose 50x50 because I have a lot of data hist, xedges, yedges = np.histogram2d(x, y, bins=(50,50)) xpos, ypos = np.meshgrid(xedges[:-1]+xedges[1:], yedges[:-1]+yedges[1:]) xpos = xpos.flatten()/2. ypos = ypos.flatten()/2. zpos = np.zeros_like (xpos) dx = xedges [1] - xedges [0] dy = yedges [1] - yedges [0] dz = hist.flatten() ax.bar3d(xpos, ypos, zpos, dx, dy, dz, color=blue, zsort='average') plt.xlabel("X ") plt.ylabel("Y ") :它将加载您需要的所有必需的env var。

     

如果使用的是LAMP堆栈,则要查找的脚本的名称将为source /opt/bitnami/use_jenkins

     

请注意,此脚本的名称为/opt/bitnami/use_lamp
  根据所使用的Bitnami Stack,占位符use_APPNAME会更改为应用程序的名称。

还要再次检查SSH密钥(new OPENSSH format or old openssl PEM format)的性质

答案 1 :(得分:2)

我将使用Jenkins pipelinesMultibranch,它允许您在不使用GitHub Publisher插件的情况下推送仓库。您必须在回购中创建Jenkinsfile并按照文档创建作业。然后,您必须选择:

  1. 正在执行的SSH:

        stage('Preparation') {
            // Get some code from the branch sending the webhook in GitHub 
            git 'your git repo'
        }
    
        stage('Build') {
            // Do some stuff here
        }
    
        stage('Push') {
            // Commit and push with ssh credentials
            sshagent (credentials: ['your credentials']) {
                sh "git commit -am 'Commit message'"
                sh 'git push origin HEAD:<yourbranch>' 
            }
        }
    
  2. HTTPS作为另一个响应提示:

        stage('Preparation') {
            // Get some code from the branch sending the webhook in GitHub 
            git 'your https repo'
        }
    
        stage('Build') {
            // Do some stuff here
        }
    
        stage('Push') {
          // Commit and push with ssh credentials
          withCredentials(
           [string(credentialsId: 'git-email', variable: 'GIT_COMMITTER_EMAIL'),
            string(credentialsId: 'git-account', variable: 'GIT_COMMITTER_ACCOUNT'),
            string(credentialsId: 'git-name', variable: 'GIT_COMMITTER_NAME'),
            string(credentialsId: 'github-token', variable: 'GITHUB_API_TOKEN')]) {
               // Configure the user
               sh 'git config user.email "${GIT_COMMITTER_EMAIL}"'
               sh 'git config user.name "${GIT_COMMITTER_NAME}"'
               sh "git remote rm origin"
               sh "git remote add origin https://${GIT_COMMITTER_ACCOUNT}:${GITHUB_API_TOKEN}@yourrepo.git > /dev/null 2>&1"                     
               sh "git commit -am 'Commit message'"
               sh 'git push origin HEAD:<yourbranch>'
            }
        }
    

答案 2 :(得分:0)

我曾经在使用ssh进行克隆和推入/拉出操作时遇到问题,所以我通过使用 HTTPS 使它起作用,在该请求中,我一次要求输入我的github密码,就像在所附的图片中可以使用该HTTPS version URL进行远程添加。我相信这可以使它正常工作,但这不是解决您问题的实际方法,SSH也应该可行。我只是提供了备用解决方案,以防您陷入紧急工作之类的麻烦。谢谢Ref Image