Jenkins Výukový program pro potrubí: Jak vytvořit JenkinsSoubor (příklad)

⚡ Chytré shrnutí

Jenkins Propojení kanálů sestavuje, testuje a nasazuje úlohy do jedné uspořádané sekvence, která běží jako kód. JenkinsSoubor potvrzený vedle projektu promění tuto sekvenci v kontrolovatelnou, verzovanou definici doručení.

  • 🔘 Potrubí: Skupina vzájemně propojených událostí, kde každá úloha závisí na té předchozí.
  • ☑️ JenkinsSoubor: Textový soubor v doménově specifickém jazyce, který obsahuje každý krok procesu.
  • (Tj. Dvě syntaxe: Deklarativní nabízí pevnou hierarchii; skriptovanou strukturu obchodů pro Groovy kontrola.
  • 🧪 Čtyři termíny: Potrubí, uzel, fáze a krok pojmenují tok, stroj, fázi a úlohu.
  • 🛠️ Cesta nastavení: Nainstalujte plugin pro sestavení pipeline, přidejte zobrazení pipeline, zřetězte úlohy a spusťte ho.
  • 📌 Cvičení: Udržujte materiální práci v bloku uzlu, práci, která není součástí nastavení, ve fázi a vstupy zabalte do časových limitů.

Jenkins pipeline definovaný jako kód v JenkinsSoubor

Co je to Jenkins Potrubí?

Jenkins Pipeline je kombinace pluginů, která podporuje integraci a implementaci kontinuální dodávky potrubíJedná se o rozšiřitelný automatizační server pro vytváření jednoduchých i složitých doručovacích kanálů jako kódu prostřednictvím DSL kanálu. Kanál je skupina událostí propojených v sekvenci.

Co je to kontinuální doručovací potrubí? Jak to funguje?

V Jenkins V rámci pipeline má každá úloha nebo událost nějaký druh závislosti na alespoň jedné nebo více událostech, jak ukazuje níže uvedený diagram.

Stavy kanálu kontinuálního dodávání sestavují, nasazují, testují a vydávají v Jenkins
Práce z Jenkins Potrubí pro kontinuální dodávku

Obrázek nahoře představuje kontinuální dodávkový kanál v Jenkins, složený ze stavů nazývaných sestavení, nasazení, testování a vydání. Každý stav má své vlastní události, které probíhají postupně.

Kanál kontinuálního dodávání (Continuous Delivery Pipeline) tento proces vyjadřuje automaticky a přenáší software od správy verzí k vydání prostřednictvím jedné opakovatelné sekvence sestavení. Testování a fáze nasazení.

Co je to JenkinsSoubor?

Jenkins Potrubí lze definovat v textovém souboru s názvem JenkinsSoubor. Vyjadřuje pipeline jako kód v doménově specifickém jazyce (DSL) a obsahuje každý krok potřebný ke spuštění pipeline.

Výhody používání JenkinsSoubory jsou:

  • Jedna JenkinsSoubor může vytvářet pipeline pro každou větev a spouštět pull requesty.
  • Můžete si prohlédnout své Jenkins kód na kanálu
  • Můžete provést audit svého Jenkins potrubí
  • Toto je jedinečný zdroj pro váš kanál a může být upraven více uživateli.

Potrubí lze definovat v Jenkins webovém uživatelském rozhraní nebo ve JenkinsSoubor potvrzený do systému správy verzí. Minimální deklarativní soubor má pevný tvar – blok kanálu, agenta a fáze obsahující jednu fázi na fázi.

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

Uložením do kořenového adresáře repozitáře se verze kanálu s kódem vytvoří.

Deklarativní versus skriptovaná syntaxe kanálu

K dispozici jsou dva typy Jenkins syntaxe pipeline používaná k definování vašeho JenkinsSoubor.

  1. Deklarativní
  2. Skriptováno

Deklarativní

Deklarativní syntaxe pipeline je jednodušší cesta. Řídí se předdefinovanou hierarchií a stále řídí každý aspekt provádění pipeline jednoduchým způsobem.

Skriptováno

Skriptováno Jenkins potrubí vede na Jenkins řadič pomocí odlehčeného exekutoru, který k převodu pipeline do atomických příkazů využívá jen velmi málo zdrojů. Tyto dva příkazy jsou napsány zcela odlišně, proto si vyberte jeden pro každou JenkinsSoubor.

⚠️ Poznámka: Jenkins nyní volá mistr ο kontrolor.

Proč používat Jenkins Potrubí?

Jenkins je otevřený server pro nepřetržitou integraci který automatizuje procesy vývoje softwaruMůžete vytvořit více pracovní místa v automatizaci z vašich případů užití a spouštět je jako jeden kanál.

Zde jsou důvody, proč byste měli používat Jenkins potrubí:

  • Kanál je implementován jako kód, takže proces může upravovat a spouštět více uživatelů.
  • Kanály jsou robustní: pokud se server neočekávaně restartuje, kanál se automaticky obnoví.
  • Kanál můžete pozastavit a zadržet ho, dokud uživatel nezadá vstup.
  • Kanály podporují velké projekty: spouštění více úloh a dokonce i používání kanálu ve smyčce.

Jenkins Potrubí Concepts

Čtyři termíny se opakují v každém JenkinsSoubor:

ObdobíDescription
PotrubíSada instrukcí napsaných jako kód, která pokrývá celý proces sestavení pro kontinuální dodávání. Pomocí pipeline můžete aplikaci sestavit, testovat a doručovat.
UzelStroj, na kterém Jenkins běhy se nazývají uzel. Blok uzlu se používá hlavně v syntaxi skriptovaného kanálu.
FázeBlok fáze obsahuje řadu kroků. Procesy sestavení, testování a nasazení se spojují ve fázi, kterou také vizualizuje zobrazení pipeline.
KrokJeden úkol, který provede specifický proces v definovaném čase. Pipeline je řada kroků.

Nainstalujte plugin Build Pipeline Jenkins

Plugin pro sestavení pipeline vytváří zobrazení pipeline pro příchozí a odchozí úlohy a přidává spouštěče pro ruční zásahy.

Nainstalujte jej takto:

Krok 1) Nastavení pluginu naleznete v sekci Řídit Jenkins > Správa pluginů, je uvedeno níže.

⚠️ Poznámka k verzi: proud Jenkins vydání označují tuto obrazovku Řídit Jenkins → Pluginy; karty se chovají tak, jak je popsáno zde.

Stránka Spravovat pluginy v Jenkins kde se nacházejí nastavení pluginu pro build pipeline

Pokud jste již plugin nainstalovali, zobrazí se na kartě Instalace.

Nainstalovaná záložka Jenkins Správce pluginů vypisující plugin sestavovacího kanálu

Krok 2) Pokud plugin ještě není nainstalován, zobrazí se na kartě Dostupné.

S nainstalovaným pluginem:

Jak vytvořit Jenkins Potrubí

Jakmile jste přihlášeni do svého Jenkins přístrojová deska:

Krok 1) Klikněte na tlačítko „+“ na levé straně vaší Jenkins řídicí panel pro vytvoření kanálu.

Tlačítko Plus na Jenkins řídicí panel používaný k přidání nového zobrazení

Krok 2) Vyplňte dialogové okno nového zobrazení:

  1. Pojmenujte zobrazení kanálu. Nazveme ho „Guru„99 Pipeline“ pro tuto ukázku.
  2. V části Možnosti vyberte Vytvořit zobrazení kanálu.
  3. Klikněte na OK, jak je znázorněno níže.

Dialogové okno Nové zobrazení se zadaným názvem zobrazení kanálu a vybranou možností Vytvořit zobrazení kanálu

Krok 3) Na další stránce se zobrazí další podrobnosti o konfiguraci. Potvrďte výchozí nastavení a ujistěte se, že v nastavení vyberete první úlohu.

Klikněte na Použít a poté na OK.

Konfigurační stránka zobrazení kanálu pro sestavení s výchozím nastavením a vybranou první úlohou

Poté se zobrazí ukázkové zobrazení kanálu pro vaši položku:

Vzorek Jenkins vytvoření zobrazení kanálu pro Guru99 Položka potrubí

Spuštění sestavení potrubí

Krok 1) Nejprve zřetězte své úlohy: otevřete svou první úlohu a klikněte na konfigurovat.

Nakonfigurujte odkaz na prvním Jenkins úloha použitá ke spuštění řetězení úloh

Krok 2) Nyní v části Spouštěče sestavení zaškrtněte možnost Sestavit po sestavení dalších projektů.

Sekce Triggery sestavení se zaškrtnutou možností Sestavit po sestavení dalších projektů

Nyní existuje řetězec pro všechny vaše úkoly.

Krok 3) Pokud ještě nemáte nainstalovaný plugin pro zobrazení Build Pipeline, nainstalujte ho.

Krok 4) Na Jenkins Na dashboardu vytvořte zobrazení pomocí tlačítka „+“, vyberte možnost Vytvořit zobrazení kanálu a klikněte na OK.

Dialogové okno Nové zobrazení s vybranou možností Vytvořit zobrazení kanálu

Krok 5) V části Konfigurace zobrazení potrubí vyhledejte možnost Tok potrubí.

V části Tok kanálu vyberte počáteční úlohu, kterou chcete spustit – úlohu zřetězenou s ostatními v krocích 1 a 2.

Nastavení průtoku potrubí s Guru99 Projekt 1 vybrán jako počáteční úkol

GuruJako počáteční úloha je zde vybrán Projekt 1, takže zřetězené úlohy se spouštějí jedna po druhé.

Během provozu potrubí červené a zelené symboly informují o jeho stavu: červená znamená selhání, zelená úspěch.

V tomto příkladu je tlačítko zelené, takže proces byl úspěšný.

Zelené stavové tlačítko zobrazující úspěšné Jenkins úsek potrubí

Běh Jenkins potrubí

Kliknutím na Spustit spusťte Jenkins potrubí. Bude to vypadat nějak takto:

Tlačítko Spustit na Jenkins zobrazení kanálu sestavení

Výše uvedený příklad vytváří jednoduchý program „helloworld.java“. Skutečné projekty řetězí mnohem složitější pipeline, jak ukazuje podrobnější pohled níže.

Dokončeno Jenkins sestavení pohledu kanálu zobrazujícího všechny zřetězené úlohy v pořadí

⚠️ Poznámka k verzi: Plugin pro zobrazení Build Pipeline je starší způsob vizualizace zřetězených úloh volného stylu; současná praxe definuje stejný tok v JenkinsSoubor. Modrá Ocean již není vylepšený.

Nejlepší postupy při používání Jenkins Potrubí

Sedm návyků udržuje proces udržitelný:

  • Použijte originální Jenkins Potrubí
  • Vyvíjejte svůj kanál jako kód
  • Jakákoli práce, která nesouvisí s nastavením vašeho kanálu, by měla probíhat v rámci bloku fáze.
  • Veškeré práce na materiálu v potrubí musí být prováděny v rámci bloku uzlů.
  • Nepoužívejte vstup uvnitř bloku uzlu.
  • Nikdy nenastavujte proměnné prostředí pomocí globální proměnné env
  • Zabalte své vstupy do časového limitu

Nejčastější dotazy

Prohledá repozitář a najde každou větev, která obsahuje JenkinsSoubor a pro každý z nich vytvoří úlohu. Chování větvení pochází z proměnné BRANCH_NAME v daném souboru.

Uložte je do Jenkins Přihlašovací údaje se ukládají a čtou pomocí pomocné funkce credentials() v bloku prostředí. Hodnota se vloží za běhu a maskuje se v protokolu, takže v souboru nezůstává žádné heslo.

Spustí se po dokončení fází, ať už je výsledek jakýkoli. Podmínky jako vždy, úspěch, selhání a nestabilní umožňují jednomu souboru publikovat zprávy, archivovat artefakty a informovat tým bez opakování.

Ano. Paralelní blok uvnitř etapy spouští své větve najednou, což vyhovuje sadám rozděleným mezi prohlížeči. Každá větev potřebuje agenta, takže doba běhu klesá pouze tehdy, když jsou exekutoři volní.

Odešlete jej na deklarativní koncový bod linteru nebo otevřete Replay při dřívějším spuštění, upravte skript a spusťte ho bez dotyku repozitáře. Obojí odhalí syntaktické chyby včas.

Asistent s umělou inteligencí dokáže číst dlouhý protokol konzole a seskupovat opakované úlohy. traca pojmenujte fázi, kde selhání začalo. Také označuje přerušované testy. Ověřte každý návrh oproti nezpracovanému protokolu.

Ano. Druhý pilot vytvoří deklarativní kostru z komentáře pojmenujícího fáze a dokončí kroky, jako je checkout a příkazy shellu. Revzobrazit popisky agentů, přihlašovací údaje a časové limity, které návrhy často uhádnou špatně.

Jakmile se stejný blok objeví ve třech nebo více JenkinsSoubory. Sdílená knihovna uchovává tuto logiku v jednom verzovaném repozitáři, takže oprava se dostane do každého projektu a každý soubor si uchovává pouze své vlastní fáze.

Shrňte tento příspěvek takto: