Zakazivanje posla u Jenkinsu

1. Uvod

U ovom ćemo članku pokriti različite načine raspoređivanja poslova u Jenkinsu.

Započet ćemo s raspoređivanjem jednostavnog posla koji izvodi nešto jednostavno poput ispisa obične tekstualne poruke. I evoluirat ćemo primjer u zakazivanje posla koji se automatski pokreće promjenama u SCM spremištu kao što su GitHub, Bitbucket itd.

2. Početno postavljanje

Pretpostavljamo da JDK i Maven su instalirani u Globalna konfiguracija alata s imenima kao JDK9.0.1 i Maven3.5.2na Jenkins poslužitelju.

Također pretpostavlja da imamo pristup SCM spremištu kao što je Bitbucket s Mavenovim projektom pravilno postavljenim.

3. Zakazivanje jednostavnog posla

Na stranici za konfiguraciju posla pomaknite se prema dolje ravno na Izgradite okidače odjeljak. Budući da namjeravamo stvoriti jednostavan posao, označimo potvrdni okvir označen Povremeno gradite. Čim označimo ovaj potvrdni okvir, prikazuje se okvir za tekst s Raspored označiti.

Moramo pružiti vrijednost u formatu sukladnom s Cron-om. Na stranici će biti dostupne opsežne informacije ako kliknemo na upitnik pored okvira.

Tipkamo */2 * * * * ovdje, što predstavlja interval od dvije minute:

Nakon izlaska iz okvira za tekst, možemo vidjeti informacije ispod okvira. Govori nam o tome kada će posao dalje trajati.

Spremimo posao - za otprilike dvije minute trebali bismo vidjeti status prvog izvršenja posla:

Budući da smo konfigurirali posao da se izvodi svake dvije minute, trebali bismo vidjeti višestruke brojeve izrade kad se vratimo na nadzornu ploču posla nakon što smo pričekali neko vrijeme.

4. Stvaranje posla koji anketira SCM

Pomaknimo se korak naprijed i stvorimo posao koji povlači izvorni kod iz SCM spremišta kao što je Bitbucket i izvodi izgradnju.

Stvorimo novi posao kao što je objašnjeno u prethodnom odjeljku, s nekoliko izmjena.

U Izgradite okidače odjeljak, umjesto odabira Povremeno gradite, odaberimo Anketa SCM. Čim to učinimo, trebali bismo vidjeti okvir za tekst s oznakom Raspored.

Tipkamo */5 * * * * u ovom okviru, što znači da želimo zakazati izvođenje posla svakih 5 minuta:

Pomaknimo se do Upravljanje izvornim kodom odjeljak. Nakon odabira radio gumba pored Git, pojavljuje se novi odjeljak označen kao Spremišta.

Ovdje trebamo konfigurirati detalje našeg SCM spremišta. Utipkamo URL spremišta SCM u URL spremišta polje za tekst:

Također moramo pružiti vjerodajnice korisnika kako bi Jenkins mogao pristupiti spremištu.

Kliknimo na Dodati gumb pored Vjerodajnica, koji će prikazati skočni zaslon za stvaranje korisničkih vjerodajnica.

Odaberimo Ljubazan kao Korisničko ime s lozinkom. Morat ćemo upisati korisničko ime i lozinku u naznačena tekstna polja:

Na klik od Dodati gumb, vraćeni smo na Upravljanje izvornim kodom odjeljak.

Odaberite ovu vjerodajnicu korisnika u padajućem izborniku pored Vjerodajnice:

Sada, posljednje što moramo učiniti je postaviti skriptu za izgradnju.

Pomaknimo se dolje do Izgraditi odjeljak, kliknite Dodajte korak gradnje i odaberite Izvršiti školjku. Budući da radimo na projektu Maven u repozitorijumu SCM, moramo tipkati mvn čista instalacija, koji će izvesti gradnju Mavena.

Pokušajmo shvatiti što smo ovdje učinili.

Stvorili smo posao za koji je predviđeno da se izvodi svakih 5 minuta. Posao je konfiguriran za povlačenje izvornog koda iz glavne grane datog spremišta Bitbucket.

Za prijavu na Bitbucket koristit će pružene korisničke vjerodajnice.

Nakon povlačenja izvornog koda, posao će izvršiti skriptu koja sadrži navedenu Mavenovu naredbu.

Sada, ako spremimo i pričekamo otprilike pet minuta, trebali bismo vidjeti izvršenje gradnje u Izgradi povijest odjeljak na nadzornoj ploči posla.

The Izlaz konzole trebao bi prikazati izlaz Mavenove gradnje. U izlazu konzole možemo vidjeti da je izvorni kod izvučen iz Bitbuketa i naredbe mvn čista instalacija je izvršeno:

Budući da se radi o Mavenu, izlaz konzole mogao bi biti vrlo dug, ovisno o broju preuzetih ovisnosti Mavena.

Ali na kraju rezultata, trebali bismo vidjeti IZGRADITI USPJEH poruka.

5. Stvaranje posla koji cjevovod koristi kao skriptu

Do sada smo vidjeli kako stvoriti poslove koji se izvršavaju u unaprijed definirano zakazano vrijeme.

Ajmo sada stvoriti posao koji nije vezan za neki određeni raspored. Umjesto toga, konfigurirat ćemo ga da se automatski aktivira kad god se u SCM spremištu pojavi novo urezivanje.

Vratimo se na Jenkinsovu nadzornu ploču, kliknimo Nova stvar. Ovaj put, umjesto Projekt slobodnog stila, mi ćemo odabrati Cjevovod. Nazovimo ovaj posao PipelineAsScriptJob.

Nakon klika na gumb U redu, bit ćemo preusmjereni na stranicu s konfiguracijom cjevovoda. Ova stranica ima nekoliko odjeljaka poput „Općenito", “Izgradi okidače ", “Napredne mogućnosti projekta ", i “Cjevovod".

Pomaknimo se prema dolje doIzgradi okidače " i potvrdni okvir pored Izrada kada se promjena potisne u Bitbucket. Ova će opcija biti dostupna samo ako smo instalirali dodatak Bitbucket:

Pomaknimo se dolje do Cjevovod odjeljak. Moramo odabrati Skripta cjevovoda u padajućem izborniku pored Definicija.

Tekstualni okvir neposredno ispod ovog padajućeg izbornika čeka na postavljanje skripte. Postoje dva načina za to.

Možemo upisati cijelu skriptu ili možemo iskoristiti uslužni program koji pruža Jenkins, a poznat je kao Sintaksa cjevovoda.

Odaberite drugu mogućnost:

Na klik na Sintaksa cjevovoda, kao što je istaknuto na gornjem dijagramu, u pregledniku se otvara nova kartica. Ovo je prikladan uslužni program u kojem možemo odrediti operaciju koju želimo izvršiti i alat će generirati skriptu u Groovyju za nas. Zatim možemo kopirati skriptu i zalijepiti je u konfiguraciju cjevovoda.

Odaberimo naplata: Općenito SCM u Uzorak Korak padajući. Nakon unosa SCM Repo URL-a i korisničkih vjerodajnica, moramo kliknuti na Generiraj skriptu cjevovoda dugme.

Ovo generira skriptu u tekstnom okviru:

Kopirajmo ovu skriptu i spremimo je negdje za kasniju upotrebu.

Na istoj stranici pomaknite se prema gore i odaberite withMaven: Osigurajte okruženje Maven u Uzorak Korak padajući. Ovdje se mora primijetiti, to ova će opcija biti dostupna samo ako je instaliran dodatak za integraciju Pipeline Maven.

Moramo odabrati imena instalacija Maven i JDK pored odgovarajućih padajućih padajućih. Moramo kliknuti na Generiraj skriptu cjevovoda dugme.

Ovo generira skriptu u tekstnom okviru:

Spremimo skriptu.

Postoji još nekoliko skripti koje trebamo generirati. Odaberimo čvor: Dodijeliti čvor u Uzorak Korak padajući, tip ovladati; majstorski u Označiti polje za tekst i kliknite Generiraj skriptu cjevovoda:

Spremimo skriptu.

I posljednja.

Odaberimo pozornica: Scena u Uzorak Korak padajući, tip scm u Naziv scene polje za tekst i kliknite Generiraj skriptu cjevovoda:

Sačuvajmo to.

Vrijeme je da saberemo sve dosad generirane skripte i spojimo ih:

node ('master') {stage ('scm') {checkout ([$ class: 'GitSCM', branch: [[name: '* / master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [ ], userRemoteConfigs: [[credentialsId: 'e50f564f-fbb7-4660-9c95-52dc93fa26f7', url: '// [email protected] /projects/springpocrepo.git']]])}} stage ('build') {withMaven ( jdk: 'JDK9.0.1', maven: 'Maven3.5.2') {sh 'mvn clean install'}}}

Prva izjava, čvor ("master") u gornjem scenariju, označava da će se posao izvršiti na čvoru s imenom ovladati; majstorski, koji je zadani čvor na Jenkinsovom poslužitelju.

Kopirajmo gornju skriptu u okvir za tekst u Cjevovod odjeljak:

Spremimo ovu konfiguraciju.

Sad je izostavljena samo jedna stvar. Moramo konfigurirati Webhook u Bitbucketu. Webhook je odgovoran za slanje push obavijesti na Jenkinsov poslužitelj, kad god se određeni događaj dogodi u Bitbucketu.

Pogledajmo kako ga konfigurirati.

Prijavite se u Bitbucket i odaberite spremište. Trebali bismo vidjeti opciju Postavke na lijevom bočnom stupcu. Kliknimo je i trebali bismo vidjeti opciju Webhooks u TIJEK RADA odjeljak. Stvorimo novi Webhook.

Moramo dati neko ime ovoj web kuki u Titula polje. Također trebamo pružiti URL za web kuku u URL polje. Ovaj URL mora ukazivati ​​na određenu REST API krajnju točku koju je pružio Jenkins, a ta je krajnja točka kuka za bitbucket.

Moramo napomenuti da se URL MORA završavati kosom crtom:

Tijekom konfiguracije Webhooka gore, odabrali smo opciju Guranje spremišta. To znači da će Bitbucket poslati obavijest Jenkins poslužitelju kad god se dogodi guranje.

Ovo se ponašanje može modificirati; možete birati između nekoliko različitih mogućnosti.

Za sada idemo sa zadanom opcijom, tj. Spremište spremišta.

Webhook možemo postaviti i u Githubu; evo nekoliko korisnih informacija o tome kako to konfigurirati.

Kratka priča: stvorili smo skriptu plinovoda na jeziku Groovy - koji bi trebao povući izvorni kod iz glavne grane isporučenog SCM spremišta (koristeći dostavljene vjerodajnice korisnika), kad god dođe do guranja u spremištu i onda izvršiti mvn čista instalacija naredba na Jenkinsovom poslužitelju.

Treba napomenuti da se ovaj posao neće odvijati niti u jedno određeno vrijeme. Umjesto toga, pričekat će dok ne dođe do naguravanja u glavnoj grani spremišta SCM.

Čim se dogodi novi push događaj, vidjet ćemo novo izvršenje u "Izgradi povijest" odjeljak na nadzornoj ploči poslova Jenkins.

Trebali bismo vidjeti pokretanje nove gradnje s u tijeku status pored.

Za nekoliko sekundi ova bi gradnja trebala započeti izvršenje i moći ćemo vidjeti kompletnu prijavu Izlaz konzole.

Prva izjava u izlazu konzole kaže "Započeo Bitbucket push by .." - to znači da je izrada automatski pokrenuta kada se u Bitbucketu dogodio push:

Ako sve bude u redu, gradnja bi se trebala uspješno dovršiti.

6. Napravite posao koji koristi Jenkinsfile

Moguće je NE pisati bilo koju skriptu u Jenkinsov cjevovod i još uvijek postići izvršenje gradnje koje pokreće Bitbucket Webhook.

Učiniti tako, moramo stvoriti novu datoteku u Bitbucketu i nazvati je kao Jenkinsfile. Skriptu cjevovoda potrebno je prenijeti na ovaj Jenkinsfile s neznatnim izmjenama. Pogledajmo točno kako to učiniti.

Stvorit ćemo novi plinovod u Jenkinsu i imenovati ga PipelineWithJenkinsfile.

Na stranici za konfiguraciju cjevovoda odabrat ćemo Skripta cjevovoda od SCM-a pored Definicija u Cjevovod odjeljak. Vidjet ćemo padajući izbornik s različitim opcijama SCM. Birajmo Git iz padajućeg.

Zatim moramo navesti URL spremišta Bitbucket i korisničke vjerodajnice. Osigurajmo to polje za tekst pored Put skripte sadrži zadanu vrijednost, tj. Jenkinsfile:

Što se Jenkinsa tiče, to je sve što trebamo konfigurirati.

Međutim, moramo napraviti Jenkinsfile u spremištu; pa, kreirajmo novu tekstualnu datoteku, nazovimo je Jenkinsfile i upotrijebimo ovu jednostavnu groovy skriptu:

node ('master') {stage ('scm') {checkout scm} stage ('build') {withMaven (jdk: 'JDK9.0.1', maven: 'Maven3.5.2') {sh 'mvn clean install'} }}

Ova je skripta gotovo ista kao skripta cjevovoda koju smo stvorili u prethodnom odjeljku, s samo jednom izmjenom. Izjava u pozornica ("scm") ne trebaju URL i podatke o vjerodajnicama korisnika. Umjesto toga, sve što treba jest naplata scm.

I to je to. Onog trenutka kada ovu datoteku pohranimo u Bitbucket, ona će pokrenuti izgradnju u Jenkinsu - i trebali bismo vidjeti kako se gradnja pokreće u Izgradi povijest.

Jedina razlika između ovog odjeljka i ranijeg je ta definirali smo skriptu cjevovoda u spremištu Bitbucket.

Tako, skripta gradnje dio je izvornog koda projekta koji treba izgraditi. Ne održavamo scenarij u samom Jenkinsu.

Umjesto toga, Jenkins ima znanje o detaljima SCM spremišta i datoteci skripte. Kad god dođe do guranja ovog spremišta, skripta u Jenkinsfile izvršava se na Jenkinsovom poslužitelju.

7. Zaključak

U ovom uputstvu vidjeli smo kako se poslovi mogu konfigurirati i rasporediti u Jenkinsu pomoću različitih strategija.

Također smo vidjeli kako konfigurirati posao u Jenkinsu tako da se automatski pokreće, na temelju određenih radnji izvedenih u SCM spremištu, kao što je Bitbucket.


$config[zx-auto] not found$config[zx-overlay] not found