/ / Pipeline multi-branch Jenkins e specificazione di progetti a monte - jenkins, jenkins-pipeline

Jenkins pipeline multi-branch e specifica progetti upstream - jenkins, jenkins-pipeline

Attualmente generiamo molti lavori Jenkins su ain base alla filiale Git utilizzando il lavoro DSL Jenkins; il plug-in della pipeline multi-ramo sembra un modo interessante per ottenere potenzialmente un supporto di generazione di lavoro di prima classe utilizzando Jenkinsfiles e ridurre la quantità di Job DSL che manteniamo.

Per esempio abbiamo libwidget server e widget di server sviluppare progetti di succursale. Al termine della compilazione del server libwidget, viene attivato il processo del server widget (per il ramo di sviluppo). Questo vale anche per altre filiali.

Questo fa uso del Build after other projects are built innescarsi al completamento di una build a monte (ad esempio libwidget-server provoca la creazione di widget-server).

Sembra che il plug-in della pipeline multi-branch manchi di Build after other projects are built impostazione - come potremmo realizzare quanto sopra nella build della pipeline multi-branch?

risposte:

10 per risposta № 1

È necessario aggiungere il nome del ramo al lavoro a monte (supponendo che si stia utilizzando una pipeline a più rami anche per il lavoro a monte).

Supponiamo di avere una cartella con due lavori, entrambi lavori di pipeline multi-ramo: jobA e jobB; jobB dovrebbe innescare dopo jobA"S master.

Puoi aggiungere questo snippet di codice a jobB"s Jenkinsfile:

properties([
pipelineTriggers([
upstream(
threshold: "SUCCESS",
upstreamProjects: "../jobA/master"
)
])
])

(Ricorda che qualsiasi ramo di jobB qui si innescherà dopo jobA"s maestro!)


3 per risposta № 2

Attualmente sto cercando di farlo funzionare per la nostra distribuzione. Il più vicino che ho è l'aggiunta di quanto segue al file Jenkins a valle;

properties([
pipelineTriggers([
triggers: [
[
$class: "jenkins.triggers.ReverseBuildTrigger",
upstreamProjects: "some_project", result: hudson.model.Result.SUCCESS
]
]
]),
])

Questo almeno porta Jenkins a riconoscere che dovrebbe essere scatenante quando "some_project" get "s build, ovvero appare nella pagina" Visualizza configurazione ".

Tuttavia, finora le build di "some_project" non attivano ancora il downstream progetto come previsto.

Detto questo, forse avrai più fortuna. Fammi sapere se funziona per te.

(Qualcun altro ha posto una domanda simile qui -> Jenkins: attiva la pipeline multi-branch su cambiamenti a monte )