需要传递 git sha 以签出到 Jenkins 多分支管道



是否可以使用参数允许用户将 git sha 传递给多分支管道,同时默认为分支的头部?我也只需要主分支的这个函数。

我正在使用...
Jenkinsfile in code
Jenkins Declarative Pipeline

我能够通过以下方式使用声明性管道做到这一点......

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']]
])
}
...
}
}
}  

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

  • 如果当前分支是主分支,则为此构建配置一个参数(因为这不是非常直观,我前段时间写了一篇博客文章(。 例如,params.INPUT_REVISION将存储给定的修订,如果尚未指定参数(例如,对于第一次运行(,您可以将默认值设置为HEAD或回退到它。

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

相关内容

  • 没有找到相关文章

最新更新