How to only build one directory in a pipeline job?

154 views
Skip to first unread message

Mark Allison

unread,
Jun 14, 2017, 6:44:43 AM6/14/17
to Jenkins Users
I have a github repo called multibranch-test with two sub-directories 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


Each sub-directory has a Jenkinsfile and the code for that project.

I Jenkins I have two multibranch pipeline jobs - one for Project1 and one for Project2. In the configuration for Project1 I don't want a push notification or polling to build Project1 if a commit was pushed in sub-directory for Project2.

So in Project1 I have configured Additional Behaviours:
Advanced clone behaviours
    Shallow clone is checked
Sparse checkout path is set to Project1
Polling ignores commits in certain paths
   Included Regions: Project1/*
   Excluded Regions: *

Build Configuration
    Script Path: Project1/Jenkinsfile

What is happening is if I push a commit to master in sub-directory Project2, Project1 and Project2 jobs get built. I only want Project2 to build. Can someone point out what I'm doing wrong?

Jenkinsfiles for both Projects are similar and look like:

#!groovy
node {
stage ('checkout') {
checkout scm
}
stage ('build') {
dir ('Project1') {
bat 'powershell -Command gci'
bat 'powershell -Command gci env:'
bat 'powershell -File .\\Project1.ps1'
}
}

Mark Allison

unread,
Jun 14, 2017, 9:36:06 AM6/14/17
to Jenkins Users
I just noticed a potential bug.

I changed these:

   Included Regions: Project1\/.+
   Excluded Regions: 

Mark Allison

unread,
Jun 15, 2017, 2:55:42 AM6/15/17
to Jenkins Users
It's still building both projects. Anyone got any ideas?
Reply all
Reply to author
Forward
0 new messages