2011-11-07 7 views
9

Sto migrando il sistema di integrazione continua da Teamcity a Jenkins. Abbiamo un repository SVN unico per tutti i nostri progetti come questo:Attivazione del processo Jenkins su modifica solo in sottocartella specifica nella cartella Job Scm

project/dev_db_build (folder) 
project/module1 (folder) 
project/module2 (folder) 
projets/pom.xml 

Per costruire db sul server di CI uso url progetto/dev_db_build e posso pol questo URL al grilletto costruisce quando ci sono cambiamenti.

Per l'applicazione di costruzione utilizzo il progetto url/Quindi se eseguo il polling e ci sono modifiche a dev_db_build, l'applicazione deve essere ignorata e attivata dopo db_build con esito positivo.

In team ho usato "Trigger patterns" per questo. Ma in Jenkins ci sono così tanti plugin di attivazione https://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Buildtriggers - Ho esaminato alcuni di loro e non ho trovato adatto.

risposta

9

Idealmente, dovresti usare un hook post-commit come suggerito da @Mike, piuttosto che il polling. Altrimenti, quando si configura il lavoro Jenkins, sotto 'Gestione codice sorgente' con 'Subversion' selezionato, c'è un pulsante avanzato. Facendo clic su questo rivela una serie di opzioni, tra cui 'Regioni escluse'

Se impostato, e Jenkins è impostato per eseguire il polling per le modifiche, Jenkins ignorerà tutti i file e/o cartelle in questa lista per determinare se una build deve essere attivato. Ciascuna esclusione utilizza la corrispondenza del modello di espressione regolare e deve essere separata da una nuova riga.

/trunk/myapp/src/main/web/.*.html

/trunk/myapp/src/main/web/.*.jpeg

/trunk/myapp/src/main /web/.*.gif

L'esempio precedente illustra che se solo i file html/jpeg/gif hanno stato impegnato su SCM, non si verificherà una generazione. Ulteriori informazioni sulle espressioni regolari possono essere trovate here.

Nel tuo caso, si dovrebbe impostare 'Regioni esclusi' a qualcosa di simile

/project/dev_db_build/.* 
2

Hai la possibilità di modificare i ganci di Subversion? Invece di fare in modo che il tuo server Jenkins esegua il polling SVN, ti consiglio di chiamare Jenkins tramite SVN tramite un hook post-commit per avviare automaticamente una build sul commit dello sviluppatore. Ciò ha l'effetto di ridurre il carico su entrambi i server Jenkins e SVN oltre a non avere un periodo di attesa per il tempo in cui l'intervallo di polling è prima che venga avviata una build.

+0

Grazie mille. Sfortunatamente gli hook post-commit non sono un'opzione al momento. –