2013-03-03 15 views
6

Ho un lungo lavoro di Jenkins con un'azione post-compilazione fallita.Jenkins - Come eseguire l'azione post-build senza rieseguire il lavoro?

Come posso eseguire ripetutamente l'azione post-build senza rieseguire l'intero lavoro?

+0

Che tipo di azione post-compilazione? È qualcosa che potresti mettere in un lavoro autonomo, innescato dal lavoro originale? –

+0

Analisi statiche degli oggetti costruiti.Preferirei non separarlo nel suo stesso lavoro, speravo che ci fosse un modo standard per fare queste cose, dato che sono abbastanza comuni. – Craig

+0

Oh, potrebbe esserci! (Ho usato Jenkins da solo da poche settimane ...) –

risposta

0

A seconda dell'azione, una semplice opzione potrebbe essere semplicemente quella di suddividerla in un lavoro autonomo, attivato dall'originale. In questo modo, sei libero di rieseguirlo manualmente.

Per condividere artefatti o aree di lavoro tra i due lavori, la primavera successiva plugin in mente:

1

A seconda di cosa i vostri passi di compilazione sono, si potrebbe essere in grado di 'salta' loro.

Ad esempio, i miei passi di build sono i file batch di PowerShell e Windows.

Se voglio saltare un passaggio, aggiungo semplicemente "exit 0" come prima riga del comando powershell o batch.

Si noti che ciò comporterà ancora altri passaggi di pre-costruzione, come la pulizia dell'area di lavoro e il checkout di scm in esecuzione.

+0

grazie, ma non funziona perché i passaggi post-build dipendono dal lungo passo di costruzione – Craig

4

Se la divisione del lavoro in 2 posti di lavoro non è un'opzione, si può considerare
https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin
(questo è pre-installato con Jenkins credo). Ciò renderà la "promozione" un processo separato e ripetibile. È possibile configurarlo per l'esecuzione automatica dopo la creazione e quindi manualmente su richiesta quando necessario.

Se i passaggi post-build richiedono l'accesso per creare artefatti, è necessario utilizzare https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin per copiare le risorse di costruzione nell'area di lavoro della promozione.

Un'altra soluzione è saltare il passaggio basato sul parametro. Avere un scelta parametro chiamato SkipBuild o qualcosa del genere. Impostare i valori possibili per VERO/FALSO, default FALSE

Nella tua Corporatura passo, prima di poter realmente costruire, controllare se SkipBuild è impostata su true. Se TRUE, uscita 0, se FALSE (che è il valore predefinito), quindi eseguire il comando build.

In questo modo, le esecuzioni di Build automatiche eseguiranno sempre il passo Build. Ma puoi anche eseguire manualmente la build e selezionare "SkipBuild = TRUE" per saltare il passaggio di generazione e passare direttamente alle azioni post-build. Se è necessario saltare alcune azioni post-compilazione, è necessario implementare anche questo parametro SkipBuild.

Attento tuttavia che le esecuzioni successive della build, anche con "SkipBuild = TRUE", eseguiranno comunque un checkout SVN, quindi l'area di lavoro potrebbe cambiare.

+0

Puoi spiegare come funziona il plugin 'Promoted Builds' senza avere più lavori? La documentazione menziona solo la promozione _automatic_ quando viene attivata da un altro lavoro. – Craig

+0

'Promoted Builds' consente di eseguire azioni su build passate esistenti. Conserva alcune informazioni della build precedente, ad esempio '$ PROMOTED_NUMBER', che indica in quale build precedente è stata eseguita la promozione. Tuttavia, devi comunque utilizzare 'Copia plugin artefatto 'per accedere alle risorse dalle build precedenti. Nei commenti non c'è abbastanza spazio per spiegarlo, ma in breve la "promozione" ti consente di eseguire praticamente qualsiasi azione di build e post-compilazione come faresti normalmente. Se non vuoi che venga attivato automaticamente, puoi impostarlo "Solo se approvato manualmente" – Slav

+0

Ho una lunga spiegazione su come archiviare gli artefatti qui: http://stackoverflow.com/questions/15140580/jenkins-continuous -consegna-con-spazio di lavoro condiviso e un'altra lunga spiegazione sulle promozioni qui http://stackoverflow.com/questions/15126059/how-to-promote-a-specific-build-number-from-another-job-in- jenkins. Nel tuo caso, leggi come 'deploy job' usa il plugin' copy artifacts' e lo fai come primo passo di costruzione nel processo di promozione. Quindi, come seconda fase di costruzione, esegui l'analisi statica – Slav

Problemi correlati