詹金斯管道 - git分支

Sha*_*nbr 6 git branch jenkins jenkins-pipeline

我正在编写管道脚本,以便在我们的项目中实现持续集成流程.这个过程是让用户在下面的命名规则,具体的分支做的工作test_id1,test_id2等等.一旦这些都推到远程回购,詹金斯踢入,它会检查出的分支与测试*并执行构建过程的其余部分.

根据我的初衷,我编写了如下管道脚本:stage'build'

node {
    git url: 'git@hd1:testing', branch: test*
    sh "pwd"
    sh "cat simple.csh"
    sh "echo $PATH"
    sh "csh simple.csh"
    echo("end of pipeline")
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我试过"测试*","测试*".

Jenkins解决了以下错误:

Caused by: hudson.plugins.git.GitException: Command "git checkout -b test* 264dc398372cba41c026568bd764d2656ebfc511" returned status code 128:
Run Code Online (Sandbox Code Playgroud)

所以,问题是我是否正朝着正确的方向前进.我也查看了上面的错误,显然,使用通配符的git checkout是不能达到目的的.那么,以下方法是否有效:

1)像往常一样检查git master 2)检查名称test*是否存在任何新分支3)如果是,请检查分支,然后执行其余的构建

需要一些指示......

小智 2

您可以使用带有正则表达式的 SCM 结帐插件。我曾经使用 feature/US1234 格式轮询功能分支。根据需要进行修改。

checkout([$class: 'GitSCM', 
branches: [[name: ':^(?i)origin/feature/[a-z|A-Z]{2}[0-9].*']], 
doGenerateSubmoduleConfigurations: false, 
extensions: [[$class: 'WipeWorkspace'], 
[$class: 'LocalBranch', localBranch: '**']], submoduleCfg: [], 
userRemoteConfigs: [[credentialsId: 'YOURID', url: 'GITURL']]]) 
Run Code Online (Sandbox Code Playgroud)

使用管道语法生成器获得更多选项。