代码之家  ›  专栏  ›  技术社区  ›  David Williams

需要通过git sha结帐至Jenkins多分支管道

  •  0
  • David Williams  · 技术社区  · 6 年前

    是否可以使用参数允许用户在默认情况下将git sha传递给多分支管道的头?此外,我只需要为主分支使用此函数。

    我正在使用。。。
    代码中的Jenkinsfile
    Jenkins声明性管道

    2 回复  |  直到 6 年前
        1
  •  1
  •   David Williams    6 年前

    我可以通过以下声明性管道实现这一点。。。

    pipeline {
      options {
        skipDefaultCheckout()
      }
    ...
    steps {
        script {
          if (GIT_REVISION=='HEAD') {
            checkout scm
          } else {
            checkout([$class: 'GitSCM',
                branches: [[name: "${params.GIT_REVISION}"]],
                doGenerateSubmoduleConfigurations: false,
                extensions: [],
                submoduleCfg: [],
                userRemoteConfigs: [[credentialsId: 'XXXXXXX', url: 'git@github.com:xxxxx/xxxxx.git']]
            ])
          }
          ...
        }
      }
    }  
    
        2
  •  0
  •   StephenKing    6 年前

    是的,这是可能的,但我想您必须使用脚本管道而不是声明性管道。

    • 如果当前分支是主分支,那么可以为此构建配置一个参数(因为这不是非常直观的,我写了一个 blog article 不久前)。 params.INPUT_REVISION 例如,将存储给定的修订,您可以将默认设置为 HEAD 如果尚未指定参数(例如,第一次运行),则返回到该参数。

    • 您将此修订提供给 checkout(scm) 步骤作为参数,以便它不签出当前主分支,而是签出指定的修订。