2016-05-08 6 views
2

Ich habe einen parametrisierten Jenkins Job, der jedes Mal ausgeführt wird, wenn einer der Upstream-Jobs eine stabile Build haben; wo die Anzahl der Upstream-Jobs variieren kann, aber zumindest gibt es immer einen.Aggregation Testergebnisse für mehrere Upstream-Jobs

Grafisch, es ist so etwas wie diese (Von hier an, ich an einen vorgeschalteten Job als upstream und auf den nachgelagerten Job als downstream beziehen):

Upstream_1 ... Upstream_N 
    |     | 
    |     | 
    \     /
    \    /
    \    /
    |    | 
    Downstream_Parametrized_Job 

downstream führt in einer speziellen Umgebung Das Gerät testet für die upstream, die die Ausführung ausgelöst hat (alle upstreams müssen in dieser spezifischen Umgebung getestet werden)

Ich bin in der Lage, aggrega Die Tests Ergebnisse in upstream für einen bestimmten Job, aber ich habe eine harte Zeit, dies für eine beliebige Anzahl von Upstream-Jobs zu verallgemeinern.

Für einen einzigen Job, ich habe this solution gefolgt, in downstream den Namen der upstream, wo das Fingerabdruck-Artefakt zu kopieren.

Getting the artifact from the upstream

Aber das ist ein Problem, da ich mehrere upstreams haben kann und ich kann nicht alle Namen direkt angeben.

Gibt es eine Möglichkeit zu sagen, Jenkins das Artefakt von der spezifischen upstream, die den Job ausgelöst hat, ohne Angabe eines Namens zu nehmen?

Also, in dem Bild, anstatt UPSTREAM_1 eingeben, wäre es möglich, eine Umgebungsvariable, etwa ${UPSTREAM_JOB_NAME}?

(here, ich sehe keine integrierte Variable so, aber ich wäre nicht überrascht, wenn es nicht dokumentiert wurden)

Antwort