Jenkins Pipeline-zelfstudie: JenkinsFile maken (voorbeeld)

Wat is Jenkins Pipeline?

Jenkins-pijpleiding is een combinatie van plugins die integratie en implementatie van continuous delivery pipelines ondersteunt. Het heeft een uitbreidbare automation server om eenvoudige en complexe delivery pipelines te creëren als code via pipeline DSL. Een Pipeline is een groep gebeurtenissen die in een sequentie met elkaar zijn verbonden.

Wat zijn continue leveringspijplijnen? Hoe het werkt?

In een Jenkins-pijplijn is elke taak of gebeurtenis op een of andere manier afhankelijk van ten minste één of meer gebeurtenissen.

Werking van Jenkins Continuous Delivery Pipelines
Werking van Jenkins Continuous Delivery Pipelines

De afbeelding hierboven geeft een continue leveringspijplijn in Jenkins weer. Het bevat een groep toestanden genaamd build, deploy, test en release. Deze gebeurtenissen zijn met elkaar verbonden. Elke staat heeft zijn eigen gebeurtenissen, die werken in een reeks die een continue leveringspijplijn wordt genoemd.

Een continuous delivery pipeline is een geautomatiseerde expressie om uw proces voor het verkrijgen van software voor versiebeheer weer te geven. Zo doorloopt elke wijziging die in uw software wordt aangebracht een aantal complexe processen op weg naar de release. Het omvat ook het ontwikkelen van de software op een betrouwbare en herhaalbare manier, en de voortgang van de gebouwde software door meerdere fasen van het testen van en inzet.

Wat is een JenkinsBestand?

Jenkins-pijplijnen kunnen worden gedefinieerd met behulp van een tekstbestand met de naam JenkinsBestand. U kunt pijplijn als code implementeren met behulp van JenkinsFile, en dit kan worden gedefinieerd met behulp van een domeinspecifieke taal (DSL). Met JenkinsFile kunt u de stappen schrijven die nodig zijn voor het uitvoeren van een Jenkins-pijplijn.

De voordelen van het gebruik JenkinsBestand zijn:

  • U kunt automatisch pipelines maken voor alle vestigingen en met slechts één pull-request uitvoeren JenkinsBestand.
  • U kunt uw Jenkins-code in de pijplijn bekijken
  • U kunt uw Jenkins-pijplijn controleren
  • Dit is de unieke bron voor uw pijplijn en kan door meerdere gebruikers worden gewijzigd.

JenkinsFile kan worden gedefinieerd via de webinterface of met een Jenkins-bestand.

Declaratieve versus gescripte pijplijnsyntaxis:

Er worden twee typen Jenkins-pijplijnsyntaxis gebruikt voor het definiëren van uw JenkinsFile.

  1. Declaratief
  2. scripted

declaratief:

Declaratieve pijplijnsyntaxis biedt een eenvoudige manier om pijplijnen te maken. Het bevat een vooraf gedefinieerde hiërarchie om Jenkins-pijplijnen te maken. Het geeft u de mogelijkheid om alle aspecten van de uitvoering van een pijplijn op een eenvoudige, ongecompliceerde manier te controleren.

gescript:

Scripted Jenkins pipeline draait op de Jenkins master met behulp van een lichtgewicht executor. Het gebruikt heel weinig resources om de pipeline te vertalen naar atomische opdrachten. Zowel declaratieve als scripted syntaxis verschillen van elkaar en zijn totaal anders gedefinieerd.

Waarom de pijplijn van Jenkin gebruiken?

Jenkins is een open continue integratieserver die de mogelijkheid heeft om de automatisering van softwareontwikkelingsprocessen te ondersteunen. U kunt met behulp van gebruiksscenario's meerdere automatiseringstaken maken en deze uitvoeren als een Jenkins-pijplijn.

Hier zijn de redenen waarom u de Jenkins-pijplijn zou moeten gebruiken:

  • De Jenkins-pijplijn wordt geïmplementeerd als een code waarmee meerdere gebruikers het pijplijnproces kunnen bewerken en uitvoeren.
  • Pijpleidingen zijn robuust. Dus als uw server een onvoorziene herstart ondergaat, wordt de pijplijn automatisch hervat.
  • U kunt het pijplijnproces pauzeren en laten wachten met hervatten totdat er invoer van de gebruiker is.
  • Jenkins Pipelines ondersteunen grote projecten. U kunt meerdere taken uitvoeren en zelfs pijplijnen in een lus gebruiken.

Jenkins-pijpleiding Concepts

Termijn Beschrijving
Pijpleiding De pijplijn is een reeks instructies die worden gegeven in de vorm van code voor continue levering en bestaat uit instructies die nodig zijn voor het gehele bouwproces. Met pipeline kunt u de applicatie bouwen, testen en opleveren.
Knooppunt De machine waarop Jenkins draait, wordt een knooppunt genoemd. Een knooppuntblok wordt voornamelijk gebruikt in de syntaxis van gescripte pijplijnen.
Stadium Een faseblok bevat een reeks stappen in een pijplijn. Dat wil zeggen dat de bouw-, test- en implementatieprocessen allemaal in één fase samenkomen. Over het algemeen wordt een faseblok gebruikt om het Jenkins-pijplijnproces te visualiseren.
Stap voor Een stap is niets anders dan een enkele taak die een specifiek proces op een bepaald tijdstip uitvoert. Een pijpleiding omvat een reeks stappen.

Installeer de Build Pipeline-plug-in in Jenkins

Met de pijplijn bouwen plug-in kunt u een pijplijnweergave van inkomende en uitgaande taken creëren en triggers creëren die handmatige tussenkomst vereisen.

Hier leest u hoe u de pijplijn bouwen plug-in in uw Jenkins:

Stap 1) De instellingen voor de plug-in vindt u onder,

Beheer Jenkins > Beheer plug-ins.

Installeer de Build Pipeline-plug-in in Jenkins

Als u de plug-in al hebt geïnstalleerd, wordt deze weergegeven onder het tabblad Geïnstalleerd.

Installeer de Build Pipeline-plug-in in Jenkins

Stap 2) Als u de plug-in nog niet eerder hebt geïnstalleerd,

het verschijnt onder de Beschikbaar Tab.

Nadat u de pijplijn bouwen plug-in in uw Jenkins, volgt u deze stappen om uw Jenkins-pijplijn te maken:

Hoe een Jenkins-pijplijn te maken

Zodra u bent ingelogd op uw Jenkins-dashboard:

Stap 1) Klik op de "+" aan de linkerkant van uw Jenkins-dashboard om een ​​pijplijn te maken.

Maak een Jenkins-pijplijn

Stap 2)

  1. U wordt gevraagd een naam te geven aan de pijplijnweergave. Wij zullen het noemen “Guru99-pijplijn” voor de duur van deze demo.
  2. Selecteren Bouw een pijplijnweergave voor opties
  3. Klik ok

Maak een Jenkins-pijplijn

Stap 3) Op de volgende pagina wordt u gevraagd om meer details om uw Jenkins-pipeline te configureren. Accepteer gewoon de standaardinstellingen en zorg ervoor dat u de eerste taak onder de instellingen kiest.

Klik op Solliciteer en OK.

Maak een Jenkins-pijplijn

Dit toont u de voorbeeldpijplijnweergave van uw item, zoals hieronder weergegeven:

Maak een Jenkins-pijplijn

Een pijplijnbuild uitvoeren

Stap 1) Voor het uitvoeren van een pijplijnbuild moet u eerst uw taken aan elkaar koppelen. Ga hiervoor naar je eerste klus en klik op configureren.

Een pijplijnbuild uitvoeren

Stap 2) Nu, onder Bouw triggers, controleer de Bouw nadat andere projecten zijn gebouwd optie.

Een pijplijnbuild uitvoeren

Zo is er een keten voor al uw banen ontstaan.

Stap 3) Installeer de Bouw pijplijnweergave plug-in als u deze nog niet hebt geïnstalleerd.

Stap 4) Ga naar uw Jenkins-dashboard en maak een weergave door op de knop “+" knop. Selecteer de Pijplijnweergave bouwen Optie en klik op OK.

Een pijplijnbuild uitvoeren

Stap 5) Onder Configuratie pijplijnweergave, bevind zich Pijpleidingstroom.

Onder Pijpleidingstroomselecteert u de eerste taak die u wilt uitvoeren. Kies nu de taak die ketens heeft met andere taken, zoals weergegeven in Stap 1 en Stap 2.

Een pijplijnbuild uitvoeren

Hier hebben we geselecteerd Guru99-project 1 als de initiële baan, gekoppeld aan andere banen. Dus één voor één zullen de banen in de pijplijn terechtkomen.

Wanneer de Jenkins-pijplijn actief is, kunt u de status ervan controleren met behulp van de rode en groene statussymbolen. Rood betekent dat de pijplijn is mislukt, terwijl groen duidt op succes.

In dit voorbeeld van de Jenkins-pijplijn zien we dat de knop groen is. De pijplijn is dus succesvol.

Een pijplijnbuild uitvoeren

Jenkins-pijplijn uitvoeren

Klik op lopen om de Jenkins-pijpleiding te exploiteren. Het zal er ongeveer zo uitzien:

Jenkins-pijplijn uitvoeren

In het bovenstaande voorbeeld van het Jenkins-pipelinescript demonstreren we een eenvoudig programma "helloworld.java". Maar in realtimeprojecten bent u verantwoordelijk voor het maken en bouwen van complexe pipelines in Jenkins. Zie hieronder voor een voorbeeld van een pipelineweergave.

Jenkins-pijplijn uitvoeren

Best practices met behulp van Jenkins Pipeline:

  • Gebruik de originele Jenkins Pipeline
  • Ontwikkel uw pijplijn als code
  • Alle niet-installatiewerkzaamheden in uw pijplijn moeten binnen een faseblok plaatsvinden.
  • Alle materiële werkzaamheden in een pijpleiding moeten binnen een knooppuntblok worden uitgevoerd.
  • Gebruik geen invoer binnen een knooppuntblok.
  • Stel nooit omgevingsvariabelen in met de globale variabele env
  • Verpak uw invoer in een time-out