简体   繁体   中英

Trigger Specific Jenkins Job on Github Push to specific Directory

I have several Jenkins Job running which Deploy's code to application server. These jobs run automatically whenever there is Commit in Github repository configured through Jenkins Plugin in Github and webhook. Jenkins is running on a Windows system.

We have several applications in the repository, represented by a directory containing the code, each of these applications have a corresponding Jenkins Job which deploy's the code to server when the Job is run. Since all the applications are in the same repository, so change in any one of the application creates a Push event and thus trigers all the Jobs.

Suppose there are three Applications App1 , App2 and App3 and their corresponding Jobs are J1 , J2 , J3 and there is a change in App1 and a commit is made in Github repository it causes all the Jobs J1 , J2 , J3 to trigger and Deploys App1 , App2 , App3 in server.

It causes unnecessary confusion since App2 , App3 do not have any changes in repository but still gets deployed to server. Is there any way that i can trigger specific Jenkins job build based on Directory level Changes/Commits in the Github repository. Can we use any git hooks somehow to achieve this?

For that to happen, You can sparse checkout to a specific directory in the git so that every jenkins job will be mutual to each other.

jenkins job configure -> Source Code Management -> Git -> Additional Behaviours -> Add -> Sparse Checkout paths

This will simply sparse checkout to a sub directory and checks if there are any commits on that directory only. Hope this helps.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM