Jenkins Vodič za cjevovod: Kako stvoriti JenkinsDatoteka (primjer)

⚡ Pametni sažetak

Jenkins Veze cjevovoda grade, testiraju i implementiraju poslove u jedan uređeni niz koji se izvršava kao kod. JenkinsDatoteka pohranjena pored projekta pretvara taj slijed u preglednu, verziranu definiciju isporuke.

  • 🔘 Cjevovod: Skupina međusobno povezanih događaja gdje svaki posao ovisi o prethodnom.
  • ☑️ JenkinsFile: Tekstualna datoteka na jeziku specifičnom za domenu koja sadrži svaki korak cjevovoda.
  • Dvije sintakse: Deklarativno nudi fiksnu hijerarhiju; skriptirana struktura trgovanja za Groovy kontrola.
  • 🧪 Četiri termina: Cjevovod, čvor, faza i korak imenuju tok, stroj, fazu i zadatak.
  • 🛠️ Putanja postavljanja: Instalirajte dodatak za izgradnju pipeline-a, dodajte prikaz pipeline-a, povežite poslove u lanac i pokrenite ga.
  • 📌 Vježbe: Materijalni rad držite u bloku čvora, rad koji nije povezan s postavljanjem u fazi, a ulaze omotajte u vremenska ograničenja.

Jenkins cjevovod definiran kao kod u Jenkinsfile

Što je Jenkins Cjevovod?

Jenkins Pipeline je kombinacija dodataka koji podržavaju integraciju i implementaciju cjevovodi za kontinuiranu dostavuTo je proširivi automatizacijski poslužitelj za stvaranje jednostavnih i složenih cjevovoda isporuke kao koda putem DSL-a cjevovoda. Cjevovod je skupina događaja međusobno povezanih u nizu.

Što su kontinuirani cjevovodi isporuke? Kako radi?

U Jenkins U cjevovodu, svaki posao ili događaj ima neku vrstu ovisnosti o barem jednom ili više događaja, kao što je prikazano na donjem dijagramu.

Stanja cjevovoda kontinuirane isporuke izrađuju se, implementiraju, testiraju i objavljuju u Jenkins
Rad od Jenkins Cjevovodi za kontinuiranu dostavu

Gornja slika predstavlja cjevovod za kontinuiranu isporuku u Jenkins, sastavljen od stanja nazvanih izgradnja, postavljanje, testiranje i objavljivanje. Svako stanje ima svoje vlastite događaje koji se izvršavaju u nizu.

Cjevovod kontinuirane isporuke automatski izražava taj proces, prenoseći softver od kontrole verzija do izdanja kroz jedan ponovljivi niz izrada, testiranje i faze implementacije.

Što je a JenkinsDatoteka?

Jenkins Cjevovodi se mogu definirati u tekstualnoj datoteci pod nazivom JenkinsDatoteka. Izražava cjevovod kao kod u domenski specifičnom jeziku (DSL) i sadrži svaki korak potreban za pokretanje cjevovoda.

Prednosti korištenja JenkinsDatoteka je:

  • jedan JenkinsDatoteka može kreirati cjevovode za svaku granu i izvršavati zahtjeve za povlačenjem.
  • Možete pregledati svoje Jenkins kod na cjevovodu
  • Možete revidirati svoje Jenkins cjevovod
  • Ovo je jedinstveni izvor za vaš cjevovod i može ga mijenjati više korisnika.

Cjevovod se može definirati u Jenkins web sučelje ili u JenkinsDatoteka predana kontroli izvora. Minimalna deklarativna datoteka ima fiksni oblik - blok cjevovoda, agenta i faze koje sadrže jednu fazu po fazi.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Spremanjem u korijen repozitorija verzije cjevovoda s kodom.

Deklarativna naspram skriptirane sintakse cjevovoda

Postoje dvije vrste Jenkins sintaksa cjevovoda koja se koristi za definiranje vašeg JenkinsDatoteka.

  1. koji tumači
  2. Scenarij

koji tumači

Deklarativna sintaksa cjevovoda je lakši put. Slijedi unaprijed definiranu hijerarhiju i dalje kontrolira svaki aspekt izvršavanja cjevovoda na jednostavan način.

Scenarij

Scenarij Jenkins cjevovod teče na Jenkins kontroler putem laganog izvršitelja, koristeći vrlo malo resursa za prevođenje cjevovoda u atomske naredbe. Dva su napisana prilično različito, pa odaberite jedan po JenkinsDatoteka.

⚠️ Bilješka: Jenkins sada poziva majstor o kontrolor.

Zašto koristiti Jenkins Cjevovod?

Jenkins je otvoren poslužitelj za kontinuiranu integraciju koji automatizira procesi razvoja softveraMožete stvoriti više poslovi automatizacije iz vaših slučajeva upotrebe i pokrenite ih kao jedan cjevovod.

Evo razloga zašto biste trebali koristiti Jenkins cjevovod:

  • Cjevovod je implementiran kao kod, tako da više korisnika može uređivati ​​i izvršavati proces.
  • Cjevovodi su robusni: ako se poslužitelj neočekivano ponovno pokrene, cjevovod se automatski nastavlja.
  • Možete pauzirati cjevovod i zadržati ga dok korisnik ne unese nešto.
  • Cjevovodi podržavaju velike projekte: pokretanje više poslova, pa čak i korištenje cjevovoda u petlji.

Jenkins Cjevovod Concepts

Četiri termina se ponavljaju u svakom JenkinsFile:

TerminDescription
CjevovodSkup instrukcija napisanih kao kod koji pokriva cijeli proces izgradnje za kontinuiranu isporuku. Pomoću cjevovoda možete izgraditi, testirati i isporučiti aplikaciju.
ČvorStroj na kojem Jenkins izvodi se naziva čvor. Blok čvora se uglavnom koristi u sintaksi skriptiranog cjevovoda.
StadijBlok faze sadrži niz koraka. Procesi izgradnje, testiranja i implementacije spajaju se u fazi, što je ujedno i ono što vizualizira prikaz cjevovoda.
KorakPojedinačni zadatak koji izvršava određeni proces u definiranom vremenu. Cjevovod je niz koraka.

Instalirajte dodatak Build Pipeline u Jenkins

Dodatak za izgradnju cjevovoda stvara prikaz cjevovoda dolaznih i odlaznih poslova i dodaje okidače za ručnu intervenciju.

Instalirajte ga na sljedeći način:

Korak 1) Postavke za dodatak možete pronaći pod upravljati Jenkins > Upravljanje dodacima, prikazano ispod.

⚠️ Napomena o verziji: struja Jenkins izdanja označavaju ovaj zaslon upravljati Jenkins → Dodaci; kartice se ponašaju kako je ovdje opisano.

Stranica za upravljanje dodacima u Jenkins gdje se nalaze postavke dodatka za cjevovod izgradnje

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

Instalirana kartica Jenkins upravitelj dodataka koji navodi dodatak za izradu cjevovoda

Korak 2) Ako dodatak još nije instaliran, prikazat će se pod karticom Dostupno.

S instaliranim dodatkom:

Kako stvoriti Jenkins Cjevovod

Nakon što ste prijavljeni na svoj Jenkins kontrolna ploča:

Korak 1) Kliknite gumb "+" s lijeve strane vašeg Jenkins nadzorna ploča za stvaranje cjevovoda.

Gumb Plus na Jenkins nadzorna ploča koja se koristi za dodavanje novog prikaza

Korak 2) Ispunite dijalog novog prikaza:

  1. Dajte naziv prikazu cjevovoda. Nazvat ćemo ga "Guru99 Cjevovod” za ovu demonstraciju.
  2. Odaberite Izgradi prikaz cjevovoda pod opcijama
  3. Kliknite u redu, kao što je prikazano dolje.

Dijalog novog prikaza s unesenim nazivom prikaza cjevovoda i odabranom opcijom Izradi prikaz cjevovoda

Korak 3) Na sljedećoj stranici traže se dodatni detalji konfiguracije. Prihvatite zadane postavke i provjerite jeste li odabrali prvi zadatak u postavkama.

Kliknite na Primijeni, a zatim na U redu.

Stranica za konfiguraciju prikaza cjevovoda za izradu s odabranim zadanim postavkama i prvim zadatkom

Zatim se pojavljuje primjer prikaza cjevovoda vaše stavke:

Uzorak Jenkins izgraditi prikaz cjevovoda kreiran za Guru99 Stavka cjevovoda

Pokretanje izgradnje cjevovoda

Korak 1) Prvo povežite svoje poslove: otvorite svoj prvi posao i kliknite na konfiguriraj.

Konfiguriraj vezu na prvom Jenkins posao koji se koristi za pokretanje lančanog povezivanja poslova

Korak 2) Sada, pod Okidači izgradnje, označite opciju Izgradi nakon što su izgrađeni drugi projekti.

Odjeljak Okidači izgradnje s označenom opcijom Izgradi nakon što su izgrađeni drugi projekti

Sada postoji lanac za sve vaše poslove.

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

Korak 4) Na Jenkins nadzornu ploču, stvorite prikaz pomoću gumba „+“, odaberite opciju Izradi prikaz cjevovoda i kliknite U redu.

Dijalog novog prikaza s odabranom opcijom Izradi prikaz cjevovoda

Korak 5) Pod Konfiguracija prikaza cjevovoda pronađite Protok cjevovoda.

U odjeljku Tijek cjevovoda odaberite početni zadatak za pokretanje - zadatak povezan s ostalima u koracima 1 i 2.

Postavke protoka cjevovoda s Guru99 Projekt 1 odabran kao početni posao

GuruOvdje je kao početni zadatak odabran Projekt 1, tako da se ulančani poslovi izvode jedan po jedan.

Dok cjevovod radi, crveni i zeleni simboli označavaju njegovo stanje: crvena označava neuspjeh, zelena uspjeh.

U ovom primjeru gumb je zelen, što znači da je cjevovod uspio.

Zeleni gumb statusa koji prikazuje uspješan Jenkins cjevovod

Trčanje Jenkins cjevovod

Kliknite na Pokreni za pokretanje Jenkins cjevovod. Izgledat će otprilike ovako:

Gumb Pokreni na Jenkins prikaza cjevovoda za izgradnju

Gornji primjer gradi jednostavan program "helloworld.java". Pravi projekti povezuju daleko složenije cjevovode, kao što pokazuje detaljniji prikaz u nastavku.

Dovršen Jenkins izgraditi prikaz cjevovoda koji prikazuje svaki ulančani posao u nizu

⚠️ Napomena o verziji: Dodatak za prikaz Build Pipeline je stari način vizualizacije ulančanih slobodnih poslova; trenutna praksa definira isti tijek u JenkinsDatoteka. Plava Ocean više nije poboljšano.

Najbolje prakse korištenja Jenkins Cjevovod

Sedam navika održava cjevovod održivim:

  • Koristite originalni Jenkins Cjevovod
  • 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.
  • Ne koristite ulaz unutar bloka čvora.
  • Nikada ne postavljajte varijable okruženja s globalnom varijablom env
  • Zamotajte svoje unose u vremensko ograničenje

Pitanja i odgovori

Skenira repozitorij, pronalazi svaku granu koja nosi JenkinsDatoteka i stvara posao za svaku. Ponašanje grananja dolazi od varijable BRANCH_NAME u toj jednoj datoteci.

Pohranite ih u Jenkins Vjerodajnice se pohranjuju i čitaju pomoću pomoćne funkcije credentials() u bloku okruženja. Vrijednost se ubrizgava tijekom izvođenja i maskira u zapisniku, tako da se u datoteci ne nalazi lozinka.

Pokreće se nakon završetka faza, bez obzira na ishod. Uvjeti poput uvijek, uspjeh, neuspjeh i nestabilno omogućuju jednoj datoteci da objavljuje izvješća, arhivira artefakte i obavještava tim bez ponavljanja.

Da. Paralelni blok unutar faze pokreće svoje grane odjednom, što odgovara paketima podijeljenim u preglednicima. Svakoj grani je potreban agent, pa vrijeme izvođenja pada samo kada su izvršitelji slobodni.

Objavite ga na deklarativnoj krajnjoj točki lintera ili otvorite Replay u ranijem pokretanju, uredite skriptu i izvršite je bez dodirivanja repozitorija. Oboje rano otkriva sintaktičke pogreške.

AI asistent može čitati dugi zapisnik konzole, grupirati ponovljeni stog traci navedite fazu u kojoj je kvar započeo. Također označava povremene testove. Potvrdite svaki prijedlog u odnosu na sirovi zapisnik.

Da. Ko-pilot izrađuje deklarativni kostur iz komentara u kojem imenuje faze i dovršava korake poput naredbi odjave i shell-a. Revoznake agenata, vjerodajnice i vremenska ograničenja, koje prijedlozi često pogrešno pogađaju.

Nakon što se isti blok pojavi u tri ili više JenkinsDatoteke. Dijeljena biblioteka čuva tu logiku u jednom verziranom repozitoriju, tako da ispravak dolazi do svakog projekta i svaka datoteka zadržava samo svoje vlastite faze.

Sažmite ovu objavu uz: