我正在努力使用Jenkins 2.1 multibranch管道,我从同一个git存储库构建了多个工件.一些工件是独立的,应该触发构建在各自目录中的更改.有些是依赖的,应该由先前的步骤/构建触发.
存储库有一个Jenkins文件控制整个管道.
Jenkins Multibranch Pipeline作业会触发所有更改(无其他行为).
我没有看到如何获取工件A的构建只是为了触发目录dirA中的更改.
文件:/// repopath中的git repo中的Jenkins文件如下所示:
node(){
stage 'Build A'
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [
[$class: 'PathRestriction',
excludedRegions: '.*',
includedRegions: 'dirA/.*'],
[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'sub']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'file:///repopath']]])
sh './buildA.sh'
}
node(){
stage 'Build B'
...
}
...
这将始终触发buildA.sh的运行:-(
我正在使用以下插件:
> Git客户端插件1.19.6
> Git插件2.4.4
> Git服务器插件1.6
>管道2.0
>管道:API 2.0
>管道:基本步骤2.0
>管道:构建步骤2.0
>管道:Groovy 2.1
>管道:输入步骤2.0
>管道:工作2.1
>管道:Multibranch 2.3
>管道:节点和进程2.0
>管道:REST API插件1.3
>管道:SCM步骤2.0
>管道:共享Groovy库2.0
>管道:阶段步骤2.0
>管道:舞台视图插件1.3
>管道:Step API 2.0
>管道:支持API 2.0
最佳答案 怎么样只做像
git log --pretty=format: --name-only -n 15 | sort | uniq
??如果您可以确定构建中的提交数量或其哈希值,那么这将回答您的问题.