我有一个名为 multibranch-test 的 github 存储库,其中包含两个子目录 Project1、Project2。
PS C:\Repos\multibranch-test> tree .
Folder PATH listing for volume Windows
Volume serial number is 2085-6D3D
C:\REPOS\MULTIBRANCH-TEST
├───Project1
└───Project2
每个子目录都有一个 Jenkinsfile 和该项目的代码。
在 Jenkins 中,我有两个多分支管道作业 - 一个用于 Project1,一个用于 Project2。在 Project1 的配置中,如果在 Project2 的子目录中推送了提交,我不希望推送通知或轮询来构建 Project1。
因此,在 Project1 中,我配置了其他行为:
- 高级克隆行为:检查浅克隆
- 稀疏结帐路径设置为 Project1#
- 轮询会忽略某些路径中的提交
- 包含区域: Project1/*
- 排除地区: *
- 构建配置:脚本路径:Project1/Jenkinsfile
正在发生的事情是,如果我在子目录 Project2 中向 master 提交提交,则Project1 和 Project2 作业都会构建。我只希望 Project2 构建。有人可以指出我做错了什么吗?
两个项目的 Jenkinsfiles 相似,如下所示:
#!groovy
node {
stage ('checkout') {
checkout scm
}
stage ('build') {
dir ('Project1') {
bat 'powershell -Command gci'
bat 'powershell -Command gci env:'
bat 'powershell -File .\\Project1.ps1'
}
}