在Jenkins管道中使用Git工作流SCM凭证

时间:2019-04-23 08:43:33

标签: git jenkins jenkins-pipeline jenkins-plugins

在Jenkins中,我必须在一个多分支项目中完成一个复杂的Git工作流程。我正在使用workflow-scm插件来检出分支,并希望在其他管道步骤中使用原始git命令。

工作流程如下:

  1. 检出有问题的分支机构
  2. 合并来自另一个分支的更改

这就是我所做的:

    def SOURCE_BRANCH = "master"

       stage('Checkout') {
           def map = checkout scm
           // for debug
           map.each{ k, v -> println "${k}:${v}" }
        }



        stage('Merge') {
            // this is where it fails
            sh """
            git pull origin $SOURCE_BRANCH
            """
        }


        stage('Push') {
            sh """
            git push --dry-run
            """
        }

我收到的错误消息是:

+ git pull origin develop
fatal: could not read Username for 'http://git-url:port': No such device or address

应注意,git-url是通过Jenkins配置设置的Bitbucket服务器的自定义URL。

我似乎无法将Git凭证注入构建步骤,也无法从映射了scm属性的map中获取它们。供参考,map包含以下键:

  • GIT_BRANCH
  • GIT_COMMIT
  • GIT_PREVIOUS_COMMIT
  • GIT_PREVIOUS_SUCCESSFUL_COMMIT
  • GIT_URL

任何帮助将不胜感激。

0 个答案:

没有答案