我正在编写管道脚本,以便在我们的项目中实现持续集成流程。该过程是让用户在遵循命名约定test_id1
,test_id2
等的特定分支中工作。一旦将这些推送到远程仓库,Jenkins启动,它将检查分支与测试*并完成构建过程的其余部分。
根据我的初衷,我编写了如下管道脚本: 阶段'建立'
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")
}
是的,我尝试过“test *”,“test *”。
Jenkins因以下错误而退出:
Caused by: hudson.plugins.git.GitException: Command "git checkout -b test* 264dc398372cba41c026568bd764d2656ebfc511" returned status code 128:
所以,问题是我是否朝着正确的方向前进。 我也查看了上面的错误,显然,使用通配符的git checkout是不能达到目的的。那么,以下方法是否有效:
1)像往常一样检查git master 2)检查名称test *是否存在任何新分支 3)如果是,请检查分支,然后执行其余的构建
需要一些指示...
答案 0 :(得分:2)
您可以将SCM checkout插件与正则表达式一起使用。我曾经使用格式功能/ 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']]])
使用管道语法生成器获取更多选项。