2016-05-12 6 views
2

Ich behalte ein monolithisches Repository, das mehrere Projekte hat und diese Projekte können voneinander abhängen oder nicht. Diese Projekte sollten keine gemeinsame Build-Skriptdatei haben.Wie mit monolithischen Projekt in einer Wurzel in Jenkins mit Gradle umgehen?

Root_Project 
     ├─ ProjectA 
     │ └─├─ libs 
     │  ├─ src 
     │  └─ build.gradle 
     ├─ ProjectB     
     │  ├─ libs 
     │  ├─ src 
     │  └─ build.gradle   

Ich will Stammprojekt auf Jenkins CI-Server verbinden. Ich möchte das Update jedes Projekts auslösen und nur dieses Projekt in Jenkins Server erstellen. Das heißt, wenn jemand sich an ProjectA vergibt, sollte Jenkins nur das Update auslösen und nur das Build-Skript ProjectA erstellen.

Hat jemand eine Idee, dies zu tun?

+0

Hat Stammprojekt build.gradle enthalten? Gibt es eine settings.gradle-Datei? – Crazyjavahacking

+0

@Crazyjavahacking Nr. Es sollte keine Datei enthalten –

Antwort

1

Wie ich dies würde Ansatz ist wie folgt:

  1. die Liste der Änderungen Dateien erhalten, die die Build verursacht (curl http://jenkins/job/JOB_NAME/BUILD_NUMBER/api/json?pretty=true&tree=changeSet[items[affectedPaths]] basierend auf this Antwort)
  2. den Pfad der Dateien analysieren, um zu sehen, welches Projekt (e) die Veränderungen beeinflussen
  3. laufen nur die gradle baut für die spezifischen Projekte
+0

Ich hoffe, es ist eine gute Idee. :-) –

Verwandte Themen