Bruk Stash i Jenkins

Bruk Stash i Jenkins

I denne opplæringen lærer vi hvordan vi kan bruke Jenkins Stash -trinnene i en rørledning for å kopiere eller flytte filer fra en Jenkins -kontroller til en annen vert.

Når du jobber i Jenkins, kan du møte et scenario der en jobb produserer spesifikke filer og kataloger. Siden de produserte filene og lokalisert på agenten som jobben ble kjørt på, må vi imidlertid finne ut en måte å overføre filene til en annen vert.

Hva er Stash i Jenkins?

Stash -trinnet i Jenkins lar oss lagre filer og kataloger for sen bruk på en hvilken som helst node eller arbeidsområde koblet til kontrolleren. Som standard vil Jenkins kaste de stashede filene når rørledningen er fullført.

Det er godt å huske at stashfiler ikke er tilgjengelige i andre rørledninger eller jobber i en Jenkins -kontroller. Hvis du ønsker å overføre filer mellom jobber eller rørledninger, bruk ArchiveArtifacts -modulen i stedet.

En annen ting å huske på Stash -trinnet i Jenkins er at det er best forbeholdt små filer. Dette er fordi stashede filer er tilgjengelige i arkiverte, komprimerte tjæreformat, som kan være ressurskrevende for filer over 100 MB. For store filer kan du vurdere å bruke et eksternt arbeidsområde for arbeidsområder.

Jenkins Stash Syntax

Følgende viser syntaksen til Jenkins Stash -trinnet. Trinnet godtar følgende parametere:

  1. Navn: Streng - Dette er en strengtype som definerer navnet på stashen. Dette skal være en enkel identifikator som refererer til måljobben, selv om det ikke er nødvendig.
  2. Tillat: boolsk - Tillatelsen er et boolsk alternativ som definerer om stashen skal opprettes selv om ingen filer er tilgjengelige. Som standard er dette alternativet satt til False og Jenkins vil returnere en feil hvis ingen filer er tilgjengelige for stashing.
  3. Ekskluder: streng - Denne valgfrie parameteren lar deg definere settet med filer og kataloger du ønsker å ekskludere fra Stash. Bruk en komma-separert liste for å spesifisere filene du vil ekskludere. For å velge et mønster, bruk mønsterlisten for mønster.
  4. Inkluderer: streng - Ligner på det ekskludere mønsteret, men det definerer filene til å inkludere i stashen.
  5. BRUKTEFAULTEXCLUDES: Boolean - Denne boolske parameteren lar deg bruke standard ekskludering fra ANT. Som standard er verdien satt til sann.

Eksempel Demonstrasjon

Vi vil bruke en Jenkins -kontroller koblet til Debian 11 og Debian 10 -agenter for å demonstrere hvordan vi kan bruke Stash -trinnet i Jenkins.

Vi vil deretter bruke en Jenkinsfile som vist nedenfor:

rørledning
agent ingen
Stadier
scene ('start')
agent etikett 'Debian11'
trinn
sh "'
berøringsprøve.sh
mkdir -p dir
Touch Dir/Sample_nested.sh
Touch Dir/Sample_nested2.sh
'"
Stash (navn: 'SampleStash')


scene ('Bekreft filer')
agent etikett 'Debian10'
trinn
unstash 'samplestash'
Sh 'Tree'



Ovennevnte eksempel rørledning starter med å lage prøvefiler for demonstrasjonsformål. Vi bruker deretter Stash -trinnet for å lage en samplestash med alle de genererte filene. Endelig unstash filene på målagenten ved å bruke Unstash -trinnet.

Når vi har kjørt rørledningen, bør vi få en utdata som vist:

Fra utdataene over kan vi se at filene er blitt stukket og ustadet på Debian11 -noden og er ustadet på Debian 10 -noden.

Konklusjon

I denne artikkelen lærte du det grunnleggende om å jobbe med Stash og Unstash -trinn i Jenkins.