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:
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.