Vodič za Jenkinsov cjevovod: Kako stvoriti Jenkinsovu datoteku (primjer)

Što je Jenkinsov cjevovod?

Jenkinsov cjevovod kombinacija je dodataka koji podržavaju integraciju i implementaciju cjevovoda kontinuirane isporuke. Ima proširivi poslužitelj za automatizaciju za stvaranje jednostavnih i složenih cjevovoda isporuke kao koda putem DSL-a cjevovoda. Cjevovod je skupina događaja koji su međusobno povezani u nizu.

Što su kontinuirani cjevovodi isporuke? Kako radi?

U Jenkinsovom cjevovodu svaki posao ili događaj ima neku vrstu ovisnosti o barem jednom ili više događaja.

Rad Jenkinsovih cjevovoda za kontinuiranu isporuku
Rad Jenkinsovih cjevovoda za kontinuiranu isporuku

Gornja slika predstavlja cjevovod kontinuirane isporuke u Jenkinsu. Sadrži skupinu stanja pod nazivom build, implementation, test and release. Ovi događaji su međusobno povezani. Svako stanje ima svoje događaje koji rade u slijedu koji se naziva kontinuirani cjevovod isporuke.

Cjevovod kontinuirane isporuke je automatizirani izraz za prikaz vašeg procesa za dobivanje softvera za kontrolu verzija. Dakle, svaka promjena napravljena u vašem softveru prolazi kroz niz složenih procesa na svom putu do objavljivanja. Također uključuje razvoj softvera na pouzdan i ponovljiv način i napredovanje izgrađenog softvera kroz više faza testiranje i raspoređivanje.

Što je JenkinsFile?

Jenkinsovi cjevovodi mogu se definirati pomoću tekstualne datoteke pod nazivom JenkinsFile. Cjevovod možete implementirati kao kod koristeći JenkinsFile, a to se može definirati pomoću jezika specifičnog za domenu (DSL). Pomoću JenkinsFilea možete napisati korake potrebne za pokretanje Jenkinsovog cjevovoda.

Prednosti korištenja JenkinsFile su:

  • Možete kreirati cjevovode automatski za sve grane i izvršavati zahtjeve za povlačenjem sa samo jednom JenkinsFile.
  • Možete pregledati svoj Jenkinsov kod u cjevovodu
  • Možete revidirati svoj Jenkinsov cjevovod
  • Ovo je jedinstveni izvor za vaš cjevovod i može ga mijenjati više korisnika.

JenkinsFile se može definirati putem web sučelja ili pomoću Jenkinsove datoteke.

Deklarativna naspram skriptirane sintakse cjevovoda:

Postoje dvije vrste Jenkinsove sintakse cjevovoda koja se koristi za definiranje vaše JenkinsFile.

  1. koji tumači
  2. Scenarij

Deklarativno:

Sintaksa deklarativnog cjevovoda nudi jednostavan način stvaranja cjevovoda. Sadrži unaprijed definiranu hijerarhiju za stvaranje Jenkinsovih cjevovoda. Daje vam mogućnost da kontrolirate sve aspekte izvođenja cjevovoda na jednostavan, neposredan način.

Skriptirano:

Skriptirani Jenkinsov cjevovod radi na Jenkinsovom masteru uz pomoć laganog izvršitelja. Koristi vrlo malo resursa za prevođenje cjevovoda u atomske naredbe. I deklarativna i skriptirana sintaksa razlikuju se jedna od druge i definirane su potpuno drugačije.

Zašto koristiti Jenkin's Pipeline?

Jenkins je otvoren poslužitelj za kontinuiranu integraciju koji ima sposobnost podrške automatizaciji procesa razvoja softvera. Možete stvoriti više automatiziranih poslova uz pomoć slučajeva upotrebe i pokrenuti ih kao Jenkinsov cjevovod.

Evo razloga zašto biste trebali koristiti Jenkinsov cjevovod:

  • Jenkinsov cjevovod implementiran je kao kod koji omogućuje većem broju korisnika da uređuju i izvršavaju proces cjevovoda.
  • Cjevovodi su robusni. Dakle, ako se vaš poslužitelj podvrgne nepredviđenom ponovnom pokretanju, cjevovod će se automatski nastaviti.
  • Možete pauzirati proces cjevovoda i natjerati ga da čeka da se nastavi dok korisnik ne unese nešto.
  • Jenkins Pipelines podržava velike projekte. Možete pokrenuti više poslova, pa čak i koristiti cjevovode u petlji.

Jenkinsov cjevovod Concepts

Termin Description
Cjevovod Cjevovod je skup uputa danih u obliku koda za kontinuiranu isporuku i sastoji se od uputa potrebnih za cijeli proces izgradnje. Pomoću cjevovoda možete izraditi, testirati i isporučiti aplikaciju.
Čvor Stroj na kojem Jenkins radi naziva se čvor. Blok čvora se uglavnom koristi u skriptiranoj sintaksi cjevovoda.
Stadij Blok stupnja sadrži niz koraka u cjevovodu. To jest, procesi izgradnje, testiranja i implementacije svi se spajaju u fazi. Općenito, blok faze se koristi za vizualizaciju procesa Jenkinsovog cjevovoda.
Korak Korak nije ništa drugo nego jedan zadatak koji izvršava određeni proces u određeno vrijeme. Cjevovod uključuje niz koraka.

Instalirajte dodatak Build Pipeline u Jenkins

Uz izgraditi cjevovod dodatka, možete stvoriti prikaz cjevovoda dolaznih i odlaznih poslova i stvoriti okidače koji zahtijevaju ručnu intervenciju.

Evo kako možete instalirati izgraditi cjevovod dodatak u vašem Jenkinsu:

Korak 1) Postavke za dodatak mogu se pronaći pod,

Upravljanje Jenkinsom > Upravljanje dodacima.

Instalirajte dodatak Build Pipeline u Jenkins

Ako ste već instalirali dodatak, prikazan je ispod kartice instalirano.

Instalirajte dodatak Build Pipeline u Jenkins

Korak 2) Ako niste prethodno instalirali dodatak,

pojavljuje se ispod Dostupno Tab.

Nakon što ste uspješno instalirali izgraditi cjevovod dodatka u vašem Jenkinsu, slijedite ove korake da biste stvorili svoj Jenkinsov cjevovod:

Kako stvoriti Jenkinsov cjevovod

Nakon što ste prijavljeni na Jenkins nadzornu ploču:

Korak 1) Klikni na "+" gumb na lijevoj strani vaše Jenkins nadzorne ploče za stvaranje cjevovoda.

Stvorite Jenkinsov cjevovod

Korak 2)

  1. Od vas će se tražiti da date naziv prikazu cjevovoda. Nazvat ćemo ga "Cjevovod Guru99” za vrijeme trajanja ove demonstracije.
  2. odabrati Izgradite pogled cjevovoda pod opcije
  3. Kliknite ok

Stvorite Jenkinsov cjevovod

Korak 3) Na sljedećoj stranici od vas će biti zatraženo više detalja za konfiguriranje vašeg Jenkinsovog cjevovoda. Samo prihvatite zadane postavke i provjerite jeste li odabrali prvi posao pod postavkama.

Kliknite na Korak po korak do prijave a zatim OK.

Stvorite Jenkinsov cjevovod

Ovo će vam pokazati ogledni prikaz cjevovoda vaše stavke, kako je navedeno u nastavku:

Stvorite Jenkinsov cjevovod

Pokretanje izgradnje cjevovoda

Korak 1) Za pokretanje izgradnje cjevovoda, najprije morate ulančati svoje poslove. Za ovo idite na svoj prvi posao i kliknite na konfiguriraj.

Pokretanje izgradnje cjevovoda

Korak 2) Sada, pod Okidači za izgradnju, provjeri Gradite nakon izgradnje drugih projekata opcija.

Pokretanje izgradnje cjevovoda

Tako je stvoren lanac za sve vaše poslove.

Korak 3) Instalirajte Pogled Build Pipeline dodatak ako ga već nemate instaliran.

Korak 4) Idite na Jenkinsovu nadzornu ploču i stvorite prikaz klikom na "+" dugme. Odaberite Pogled izgradnje cjevovoda Opciju i kliknite OK.

Pokretanje izgradnje cjevovoda

Korak 5) Pod, ispod Konfiguracija prikaza cjevovoda, locirajte Protok cjevovoda.

Pod Protok cjevovoda, odaberite početni posao za pokretanje. Sada odaberite posao koji je povezan s drugim poslovima, kao što je prikazano u Korak 1 i Korak 2.

Pokretanje izgradnje cjevovoda

Ovdje smo odabrali Projekt Guru99 1 kao početni posao, vezan za druge poslove. Dakle, jedan po jedan, poslovi će se pokretati.

Kada Jenkinsov cjevovod radi, možete provjeriti njegov status uz pomoć crvenih i zelenih statusnih simbola. Crveno znači da cjevovod nije uspio, dok zeleno označava uspjeh.

U ovom primjeru Jenkinsovog cjevovoda vidimo da je gumb zelen. Dakle, cjevovod je uspješan.

Pokretanje izgradnje cjevovoda

Pokretanje Jenkinsovog cjevovoda

Kliknite na trčanje pokrenuti Jenkinsov plinovod. Izgledat će otprilike ovako:

Pokretanje Jenkinsovog cjevovoda

U gornjem primjeru Jenkinsove skripte cjevovoda demonstriramo jednostavan program "helloworld.java". Ali u projektima u stvarnom vremenu bit ćete odgovorni za stvaranje i izgradnju složenih cjevovoda u Jenkinsu. U nastavku pogledajte ogledni prikaz cjevovoda.

Pokretanje Jenkinsovog cjevovoda

Najbolje prakse korištenja Jenkinsovog cjevovoda:

  • Koristite originalni Jenkins Pipeline
  • Razvijte svoj cjevovod kao kod
  • Svaki rad koji nije povezan s postavljanjem u vašem cjevovodu trebao bi se odvijati unutar bloka faze.
  • Svaki materijalni rad u cjevovodu mora se izvesti unutar bloka čvora.
  • Nemojte koristiti unos unutar bloka čvora.
  • Nikada ne postavljajte varijable okruženja s globalnom varijablom env
  • Zamotajte svoje unose u vremensko ograničenje