2017-12-01 4 views
0

Ich habe mehrere Jenkins Job ausgeführt, die Deploy-Code auf Anwendungsserver. Diese Jobs werden automatisch ausgeführt, wenn das Commit im Github-Repository über das Jenkins-Plug-in in Github und Webhook konfiguriert ist. Jenkins läuft auf einem Windows-System.Trigger spezifischen Jenkins Job auf Github Push zu bestimmten Verzeichnis

Wir haben mehrere Anwendungen im Repository, repräsentiert durch ein Verzeichnis, das den Code enthält, jede dieser Anwendungen hat einen entsprechenden Jenkins-Job, der den Code für den Server bereitstellt, wenn der Job ausgeführt wird. Da sich alle Anwendungen im selben Repository befinden, erzeugt eine Änderung in einer der Anwendungen ein Push-Ereignis und triggert so alle Jobs.

Angenommen, gibt es drei Anwendungen App1, App2 und Anw3 und ihre entsprechenden Jobs sind J1, J2, J3 und gibt es eine Änderung in App1 und eine Festschreibung wird in Github-Repository verursacht es alle Jobs J1, J2, J3 auslösen und Deploys App1, App2, App3 im Server.

Es verursacht unnötige Verwirrung, da App2, Anw3 keine Änderungen in Repository haben, wird aber nach wie vor auf Server bereitgestellt. Gibt es eine Möglichkeit, dass ich spezifische Jenkins Job-Build basierend auf Directory-Level Änderungen/Commits im Github-Repository auslösen kann. Können wir irgendeinen Git Haken irgendwie verwenden, um dies zu erreichen?

Antwort

0

Damit das passiert, können Sie Checkout in ein bestimmtes Verzeichnis in der Git, so dass jeder Jenkins-Job gegenseitig sein wird.

jenkins Job configure -> Source Code Management -> Git -> Weitere Behaviors -> Add -> Sparse Kasse Pfade

Dies wird einfach spärliche Kasse zu einem Unterverzeichnis und überprüft, ob es irgendwelche Commits nur in diesem Verzeichnis. Hoffe das hilft.

+0

Können Sie bitte angeben, wie Ihre Arbeit in jenkins konfiguriert ist. –

+0

Der Jenkins Job ist mit der Option "GitHub Hook Trigger für GITScm Polling" konfiguriert, so dass der Job bei einem GITHUB PUSH Event ausgelöst wird. –

+0

Bei der Verwendung von Auschecken in einem Unterverzeichnis-Feature, obwohl das Auschecken mit einem Unterverzeichnis erfolgt, der Auslösemechanismus jedoch gleich ist, d. H. Alle Jobs werden ausgelöst, wenn ein Push im GitHub-Repository passiert. Ich muss vermeiden, andere Jobs auszulösen, die auch mit Github Hook ausgelöst werden. –