Wist je dat Jenkins ingebouwde ondersteuning heeft voor Continuous Integration/Continuous Delivery (CI/CD)? Het implementeren van een Jenkins CI/CD-pijplijn met je project kan je software-ontwikkelingsproces aanzienlijk verbeteren.
Jenkins is een van de meest populaire automatiseringstools voor DevOps tot nu toe. En als je wilt beginnen met de Jenkins CI/CD-pijplijn, ben je hier aan het juiste adres.
Lees verder en in deze tutorial leer je hoe je een Jenkins CI/CD-pijplijn opzet met GitHub.
Vereisten
Deze tutorial gaat ervan uit dat je aan de volgende vereisten voldoet om de voorbeelden te kunnen volgen.
Je moet al een Jenkins-installatie hebben. De voorbeelden in deze tutorial zullen gebruikmaken van Jenkins v2.319.1 op een Windows 10 20H2-computer.
- Je Jenkins-webconsole moet toegankelijk zijn via het internet.
- A Github account to which you’ll connect with the Jenkins CI CD pipeline.
- Git SCM. Deze handleiding maakt gebruik van de nieuwste (2.34.1) 64-bits versie van Git voor Windows.
Voorbereiden van de GitHub Repository
Deze handleiding gaat over het integreren van een Jenkins CI/CD-pijplijn met een GitHub-repository. In plaats van een leeg project te maken, is het sneller om een bestaande repository te fork-en om snel aan de slag te gaan.
1. Open eerst een browser en log in op je GitHub-account.
2. Ga vervolgens naar de voorbeeldrepository-URL (MyShuttle2-toepassing van Microsoft Connect 2016). Als je op de repopagina bent, klik dan op de Fork-knop in de rechterbovenhoek van de pagina.

Wacht tot het forkproces is voltooid. Aan het einde heb je de repository met de naam “gebruikersnaam/MyShuttle2” op je GitHub-account waar je volledige toegang toe hebt.
3. Voeg nu een nieuw bestand toe aan de repository met de naam Jenkinsfile. Een Jenkinsfile is een tekstbestand dat de definitie van een Jenkins-pijplijn bevat. Dit bestand moet zich binnen de broncode-repository bevinden.
Op je repopagina, klik op Bestand toevoegen —> Nieuw bestand maken.

4. Type in Jenkinsfile als de naam van het nieuwe bestand. Kopieer vervolgens de onderstaande code en plak het in uw Jenkinsfile.
- De term pipeline is een set instructies geschreven in code voor continue levering.
- A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
- A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.
Deze Jenkinsfile is slechts een basisvoorbeeld van een pipelinescript. In productie zullen pipelinescripts complexer zijn en meerdere acties bevatten op één of alle stadia.
Nadat u de code hebt geschreven, ziet uw bestand eruit zoals op de onderstaande screenshot.

5. Scroll naar de onderkant van de pagina en klik op Nieuw bestand committeren.

U heeft nu een Jenkinsfile in uw repository.

6. Kopieer tot slot de repository-URL. Klik hiervoor op Code en klik op de Kopie-knop. U heeft de resulterende URL nodig tijdens het maken van de Jenkins CI CD-pipeline.

Het maken van een Jenkins CI CD-pipeline
Het ontwikkelen van een functie omvat veel codeveranderingen. Tussen elke codeverandering zijn er een reeks taken uit te voeren. Deze taken kunnen het committen van veranderingen, compileren, testen en verpakken omvatten.
Automatiseringsservices zoals Jenkins helpen deze stappen snel en foutloos te maken.
1. Open een browser, ga naar uw Jenkins-URL en log in.
2. Op het Jenkins Dashboard, klik op de optie Nieuw item in het menu aan de linkerkant.

3. Voer de naam in van de nieuwe pipeline. Voor deze tutorial noemt u het demoPipeline en selecteer de Pipeline-sjabloon. Klik op OK om te voltooien.

4. Vink het vakje aan voor het GitHub-project onder het Algemeen tabblad op de configuratiepagina. Plak vervolgens de eerder gekopieerde repository-URL in het vak Project-URL.

5. Scroll naar beneden naar de sectie Buildtriggers en vink het vakje GitHub-hooktrigger voor GITScm-polling aan, zoals in de onderstaande screenshot.

6. Scroll vervolgens verder naar beneden naar de sectie Pipeline en selecteer/specificeer de volgende waarden:
- Definitie: Pipeline-script van SCM
- SCM: Git
- Repository-URL: Je repository-URL

7. Scroll naar de onderkant van de pagina en bevestig dat de waarde van Scriptpad Jenkinsfile is. Deze waarde verwijst naar de Jenkinsfile die je eerder hebt gemaakt tijdens het voorbereiden van je Github-repo. Klik ten slotte op Opslaan.

Configureren van een Webhook in GitHub
Voor Jenkins om een nieuwe taak uit te voeren, moet je eerst een webhook in de GitHub-repository creëren. Deze webhook zal Jenkins op de hoogte stellen zodra er een nieuwe push in de repository plaatsvindt.
Volg de onderstaande stappen om een Webhook te creëren.
1. Navigeer naar de Instellingen pagina en klik op het tabblad Webhooks in je GitHub-repository. Op de pagina Webhooks, klik op Webhook toevoegen.

2. Specificeer uw Jenkins-URL en voeg /github-webhook/ toe in het Payload-URL-veld. Bijvoorbeeld, HTTP://jenkinsURLhere/github-webhook/.
Verander ook de Content-type-waarde naar application/json.

3. Op de Welke gebeurtenissen wilt u gebruiken om deze webhook te activeren-selectie, klik op de Laat mij individuele gebeurtenissen selecteren-optie.

4. Scroll naar beneden en vink de Pushes en Pull-aanvragen-selectievakjes aan. Deze opties zorgen ervoor dat GitHub een payload naar Jenkins stuurt tijdens deze specifieke gebeurtenissen.

5. Valideer de webhook door op de Webhook toevoegen-knop onderaan te klikken. Als de validatie van de webhook goed is verlopen, ziet u een melding bovenaan de pagina vergelijkbaar met de onderstaande screenshot.

Het uitvoeren en activeren van de Jenkins CI CD Pipeline Job
Nu u uw pijplijn hebt gemaakt en geconfigureerd, hoe weet u dat de pijplijn werkt? Jenkins biedt een Pijplijnfase-weergave-plugin om u te helpen de status van de pijplijn te bekijken.
1. Om de status van de pijplijn te openen, opent u de pijplijn in Jenkins en klikt u op Status. Zoals u hieronder kunt zien, toont de Stapweergave-status Geen gegevens beschikbaar omdat er nog geen gebeurtenis is geweest die de pijplijn zou activeren.

2. Om initiële bouwgegevens te genereren, klik op Build Nu en wacht tot het bouwproces is voltooid. Zoals je hieronder kunt zien, heeft de Stage View nu één vermelding waarin staat dat er geen wijzigingen zijn in deze build.

3. Test nu de pipeline door een nieuw dummybestand aan het repository toe te voegen. Ga hiervoor terug naar je GitHub-repository en klik op Add File —> Nieuw bestand maken.
Voer dummy in als de naam van het nieuwe bestand en zorg ervoor dat je inhoud toevoegt.

Tenslotte, klik op Commit nieuw bestand onderaan de pagina.
4. Ga terug naar je Jenkins-pipelinestatuspagina en je zou een nieuwe bouwvermelding moeten zien met één commit, zoals hieronder wordt getoond.

Conclusie
In deze tutorial heb je geleerd hoe je een Jenkins CI/CD-pipeline opzet om de levenscyclus van softwareontwikkeling te automatiseren. Je hebt ook geleerd hoe je Jenkins kunt gebruiken om een reeks acties voor CI te handhaven in een softwareproject.
Denk je dat de Jenkins CI/CD-pipeline een strategie is die je op je projecten zou toepassen? Of heb je al een andere oplossing die je beter vindt voor CI/CD?