Jenkins Parameterized Trigger + Copy Artifact

9

Sto lavorando alla creazione di Jenkins per gestire i nostri build di rilascio. Una build di rilascio consiste in un programma di installazione di Windows che include alcuni file binari che devono essere creati su Linux.

Ecco cosa ho finora:

  • La porzione Windows e la parte Linux sono configurate come progetti Jenkins separati.
  • Il progetto Windows è parametrizzato, prendendo il tag Subversion per creare e rilasciare.
  • Come parte della sua build, il progetto Windows attiva una build dello stesso tag Subversion per il progetto Linux (usando Trigger parametrico plug-in) quindi copia le risorse dal progetto Linux (utilizzando Copia Artifact plug-in) nello spazio di lavoro del progetto Windows in modo che possano essere inclusi nel programma di installazione di Windows.

Dove sono bloccato: adesso, Copy Artifact è impostato per copiare l'ultima build completata. Sembra più robusto configurare Copy Artifact per copiare dal build esatto innescato da Parameterized Trigger, ma ho difficoltà a capire come farlo funzionare. C'è un'opzione per un parametro "build selector" che penso sia destinato ad aiutare con questo, ma non riesco a capire come dovrebbe essere impostato (e sperimentare ciecamente con diverse possibilità è un po 'doloroso quando la build impiega un'ora o due per trovare il successo o il fallimento).

Come dovrei installarlo? Come funziona il selettore di build?

    
posta Josh Kelley 03.12.2012 - 14:38
fonte

1 risposta

11

Dopo aver completato una build innescata, avrai una nuova variabile env impostata sul numero di build della build innescata chiamata TRIGGERED_BUILD_NUMBER_ < nome lavoro & gt ;. Puoi usarlo per copiare in modo specifico le risorse:

  1. Windows build (chiamato " WindowsBuild "), chiama la build di Linux (chiamata " LinuxBuild ") utilizzando il plug-in Paramotore di trigger.

    Hai questa parte, assicurati di selezionare Blocca fino a quando non viene attivata i progetti finiscono le loro build e falliscono la costruzione, naturalmente, se la compilazione di Linux fallisce.

  2. Avanti nel tuo passaggio Copia artefatti da un altro progetto :

    Nome del progetto: LinuxBuild

    Quale build: build specifica

    Numero di build: $ TRIGGERED_BUILD_NUMBER_LinuxBuild (Tutti i nomi progetto hanno caratteri non a-zA-Z o 0-9 sostituiti da _; più caratteri sono condensati in un singolo _).

risposta data 23.04.2013 - 23:55
fonte

Leggi altre domande sui tag