2016-07-10 70 views
5

Sto pianificando di riutilizzare lo stesso insieme di parametri di costruzione (come 10 di essi) su dozzine di lavori.Come riutilizzare i parametri di compilazione su più lavori Jenkins?

Un modo è creare un lavoro e clonarlo. Ma cosa succede se voglio cambiare i parametri di costruzione in un secondo momento, quando ho già centinaia di lavori simili. La modifica di tutti loro uno per uno potrebbe essere un incubo.

Esiste un modo per gestire i progetti con parametri?

Come soluzione a questo problema, visualizzo alcune opzioni o plug-in in cui è possibile definire un set globale di parametri e riutilizzarli attraverso i miei lavori.

risposta

3

Informazioni su EZ Templates Plugin (vedere anche la pagina GitHub)?

Basta ricordare che quando si crea un modello, quel lavoro non dovrebbe fare altro che essere un modello (ovvero: non si dovrebbe eseguire quel lavoro) e inserire solo le configurazioni comuni minime lì, nient'altro o cose possono disordinato. In questo modo non dovresti avere problemi.

+1

Testato e funziona silenziosamente, grazie. – kenorb

5

Si potrebbe provare a utilizzare Configuration Slicing Plugin. Questo plugin consente di eseguire la configurazione di massa (compresi i parametri) per un gruppo di lavori.

In alternativa, è possibile provare a scrivere uno script di gestione groovy per impostare il gruppo di parametri per tutti quei lavori contemporaneamente. Un buon punto di partenza sarebbe this, si noti che si tratta solo di stampare i parametri dei lavori correnti, si dovrebbe modificare lo script per fare ciò che si desidera.

2

Prova Inheritence-Plugin che può aiutare a risolvere il problema. Possiamo leggere dalla descrizione del plug-in:

Invece di dover definire la stessa proprietà più volte su altrettanti progetti; dovrebbe essere possibile per molti progetti fare riferimento alla stessa proprietà definita solo una volta. In altre parole, tutto ciò che viene definito più volte, ma usato allo stesso modo, dovrebbe essere definito solo una volta e semplicemente richiamato più volte.

Quindi, per definire la proprietà solo una volta in più posti di lavoro, è necessario:

  1. Creare un nuovo lavoro come Inheritance Progetto.
  2. È possibile impostare come progetto astratto scegliere Questa build è parametrizzata.
  3. Aggiungi Parametro ereditario e impostarlo come Sovrascrivibile.
  4. Dopo aver salvato, impostare questo progetto come genitore, in modo che i parametri possano essere ereditati.

jenkins-inheritance-plugin - Inheritable Parameter

Controllare la Jenkins Inheritance Plugin Tutorial Video per una panoramica delle caratteristiche principali. Vedi anche la pagina GitHub.

Sfortunatamente il plug-in non è ben gestito e può essere difettoso quando si utilizza con l'ultimo Jenkins (ad esempio #22885).

2

Si potrebbe anche considerare l'utilizzo di Pipeline Global Library.

Questo plug-in aggiunge tale funzionalità creando uno "script di libreria condivisa" repository Git all'interno di Jenkins. Ogni script Pipeline nel tuo Jenkins vede questi script di libreria condivisa nel loro percorso di classe.

+0

Potrebbe funzionare, ma è una soluzione complessa. La pipeline richiede la codifica in groovy, quindi ci vuole tempo per integrarla, in secondo luogo non è open source. – kenorb

0

Si può gestire questo file singolo struttura tramite la quale può essere iniettato in tutti i posti di lavoro

+0

Utilizzando quale plugin? – kenorb

3

Purtroppo menzionati Inheritance Plugin non è più mantenuto, è buggy ed ha alcune limitazioni, come trigger parametrizzato Builds non può essere implementato in Progetti principali, è anche difficile sovrascrivere la configurazione specifica e non funziona bene con il plug-in di Cartelle.

modi alternativi sono:

  • Job DSL Plugin che permette elaborare i lavori con DSL che possono essere utilizzati come modelli (un lavoro "seme"), quindi eseguire questi script DSL nei lavori (leggi la tutorial). Viene mantenuto attivamente al GitHub. Per soluzioni più avanzate è possibile utilizzare invece Pipelines.
  • Template Project Plugin che permette di impostare un modello di progetto che ha tutte le impostazioni che si desidera condividere tra gli altri posti di lavoro (selezionando utilizzare tutte le case editrici da questo progetto e scegliere il progetto modello.