Usa Stash in Jenkins

Usa Stash in Jenkins

In questo tutorial, impareremo come possiamo usare i passaggi di Jenkins Stash in una pipeline per copiare o spostare i file da un controller Jenkins a un altro host.

Quando si lavora in Jenkins, è possibile incontrare uno scenario in cui un lavoro produce file e directory specifiche. Tuttavia, poiché i file prodotti e situati sull'agente su cui è stato eseguito il lavoro, dobbiamo trovare un modo per trasferire i file in un host diverso.

Cosa è la scorta di Jenkins?

Il passaggio di stash in Jenkins ci consente di salvare file e directory per uso tardivo su qualsiasi nodo o spazio di lavoro collegato al controller. Per impostazione predefinita, Jenkins eliminerà i file ribassati una volta che la pipeline sarà stata completata.

È bene ricordare che i file ribassati non sono disponibili in altre condutture o lavori all'interno di un controller Jenkins. Se si desidera trasferire file tra lavori o pipeline, utilizzare invece il modulo ArchiveAceFacts.

Un'altra cosa da tenere a mente sul passo della scorta in Jenkins è che è meglio riservato per piccoli file. Questo perché i file ribassati sono disponibili in formato TAR archiviato e compresso, che può essere ad alta intensità di risorse per file superiori a 100 MB. Per file di grandi dimensioni, prendi in considerazione l'utilizzo di un plug -in esterno dell'area di lavoro.

Sintassi di Jenkins Stash

Quanto segue mostra la sintassi del passaggio di Jenkins Stash. Il passaggio accetta i seguenti parametri:

  1. Nome: String - Questo è un tipo di stringa che definisce il nome della scorta. Questo dovrebbe essere un semplice identificatore che fa riferimento al lavoro target, sebbene non richiesto.
  2. Amelodi: booleano - Il mantenimento è un'opzione booleana che definisce se la scorta dovrebbe essere creata anche se non sono disponibili file. Per impostazione predefinita, questa opzione è impostata su False e Jenkins restituirà un errore se non sono disponibili file per la scorta.
  3. escludere: stringa - Questo parametro opzionale consente di definire il set di file e directory che desideri escludere dalla scorta. Utilizzare un elenco separato da virgola per specificare i file che si desidera escludere. Per selezionare uno schema, utilizzare l'elenco dei pattern Ant.
  4. Include: stringa - Simile al modello Exclude ma definisce i file da includere nella scorta.
  5. UsefaultExcludes: booleano - Questo parametro booleano consente di utilizzare gli esclusi predefiniti da Ant. Per impostazione predefinita, il valore è impostato su true.

Esempio di dimostrazione

Useremo un controller Jenkins collegato a Debian 11 e Debian 10 Agents per dimostrare come possiamo usare il passaggio di scorta in Jenkins.

Useremo quindi un Jenkinsfile come mostrato di seguito:

tubatura
agente nessuno
fasi
stadio ('start')
agente etichetta 'debian11'
Passaggi
sh "'
Tocca campione.sh
mkdir -p dir
Tocca Dir/Sample_Nested.sh
Tocca Dir/Sample_Nested2.sh
'"
Stash (nome: "SampleStash")


Stage ('Verifica file')
agente etichetta 'debian10'
Passaggi
Unstash "campilestash"
Sh 'Tree'



La pipeline di esempio sopra inizia creando file di esempio per scopi dimostrativi. Quindi utilizziamo il passaggio Stash per creare un campilestash con tutti i file generati. Infine, spostamo i file sull'agente target usando il passaggio Unstash.

Una volta eseguita la pipeline, dovremmo ottenere un'output come mostrato:

Dall'output sopra, possiamo vedere che i file sono stati ribassati e non rimasti sul nodo Debian11 e non stabiliti sul nodo Debian 10.

Conclusione

In questo articolo, hai imparato le basi del lavoro con i passaggi di Stash e Unstash in Jenkins.