Jsme tu pro vás PO - PÁ 9:00 - 17:00 info@systeum.cz +420 608 408 716

Jsme tu pro vás PO - PÁ 9:00 - 17:00 obchod@systeum.cz +420 608 408 716

Na úvod je dobré říct, že Jenkins nejčastěji ovládají právě lidé z DevOpsu, developeři a automatizační testeři, manuální testeři se s ním spíše nesetkají. Taje Jenkinsu vám popíši ve dvou dílech. V prvním se na Jenkins podíváme obecně, zabrousíme do historie a zjistíme, k čemu se využívá a v druhém díle detailněji rozebereme další kroky(steps {} ) v Jenkins file jako je např. automatizované testování. 

Jenkins je platforma pro vytváření Continuous Integration/Continuous Delivery aka CI/CD. Nejčastěji se setkáme se slovem „pipeline“ nebo „Jenkins pipeline“. Což je job, který automatizovaně spouští postupně několik věcí. Například přípravu prostředí, vytvoření podu (serveru), nasazení aplikace (deployment) a také testy, které ověří, že je nasazená aplikace v pořádku. I přesto, že Jenkis vyžaduje skriptování některých kroků celkové automatizace, tak poskytuje rychlý a robustní způsob, jak systematizovat celkový „life-cycle“ vývoje softwaru. A proč je vlastně dnes Jenkins jedním z předních nástrojů DevOps? K vysvětlení nám poslouží jednoduchá definice:

Jenkins je automatizační server napsaný v Javě, který pomáhá vytvářet, testovat a neustále nasazovat software. Open source systém je v současnosti jedním z předních automatizačních serverů.

Jenkins poskytuje podporu pro:

  1. různé nástroje pro správu verzí, jako je Git
  2. buildování projektu založených na ANT a Apache Maven
  3. pouštění Bash skriptu a dávkových souborů Windows

 

Něco málo z historie Jenkinsu

Projekt Jenkins začal v roce 2004 a to pod názvem Hudson (to si ještě pamatuju, sakra jsem starej :)). Možná znáte vývojáře Kohsuke Kawaguchiho, který pracoval v Sun Systems a chtěl vytvořit metodu pro provádění Continious integration/Nepřetržité integrace. Jeho hlavním záměrem bylo otestovat kód před potvrzením, aby nedošlo k porušení buildu.

Jeho nápad se ukázal jako úspěšný a velmi rychle se rozšířil i do celého týmu. A jak to dopadlo? Kohsuke Kawaguch vytvořil Open-Source projekt Jenkins, který se rozšířil po celém světě. Podle odhadu ho využívá 1.6 milionu uživatelů.

K čemu se Jenkins používá? 

Primárně jako kontinuální integrační nástroj a zároveň pokrývá celý proces dodávání softwaru včetně nasazování. Spouští webové kontejnery a pluginy jako je například Apache Tomcat. Pomáhá spravovat požadavky a celkový životní cyklus i přístupová práva. Jenkins má přes 1 700 modulů, které pomáhají a obohacují softwarovou integraci, automatizaci a delivery procesy. V neposlední řadě poskytuje přizpůsobitelné prostředí.

Jenkins zahrnuje různorodou terminologii DevOps s různými možnostmi vytváření a správou pipeline. Níže se pokusím vysvětlit několik běžných termínů. 

Jenkins pipeline je uživatelsky vytvořený model s kontinuálním procesem. Pipeline obsahuje různé moduly, které pomáhají definovat všechny kroky od správy až po uživatele. Všechny tyto kroky, které jsou definovány v rámci pipeline procházejí složitým procesem. Ten zahrnuje tři kroky:

  1. automatizovaný build
  2. vícestupňové testování
  3. postupy nasazování

Když chceme vytvořit pipeline existují dva způsoby jak na to. První způsob je přímo přes uživatelské prostředí Jenkins, druhý způsob je využití metodologie Pipeline as Code, tím vytvoříme Jenkins file. Jenkins file využívá pro definování pipeline syntaxy, které jsou kompatibilní s Groovy. Je důležité poznamenat, že syntaxe Jenkins file je buď deklarativní nebo skriptovaná

Deklarativní zápis Jenkins file:

Zajímá vás oblast IT a hledáte pracovní pozice a pracovní příležitosti v IT oboru? Ať už jste programátor, developer, tester, analytik nebo software architekt, ozvěte se nám a my vám z naší nabídky IT práce najdeme IT projekt na míru. Podívejte se, jaká volná pracovní místa v IT oblasti momentálně nabízíme. Pomůžeme vám najít nové pracovní výzvy a příležitosti. Těšíme se na spolupráci s vámi!

 

Samotný kód má tyto prvky:

  1. Povinný blok “pipeline { }“ vyvolává plugin Jenkins Pipeline.
  2. Slovo „agent“ definuje, kde kanál běží a slovo „any“ označuje, že kanál poběží na libovolném a samozřejmě dostupném agentovi. 
  3. Blok “stages { }“ má sekvenci, ve které poběží pipeline. Jsou tam tři “stage“ – Build, Test, Deploy. Každá z nich s příslušnými “steps { }“. Tyto “steps { }“ říkají Jenkinsu, co má vlastně dělat v daném kroku. 

Skriptovatelný ekvivalent Jenkins file vypadá takto:

Když tým zařadí Jenkins file, umožní tak celému týmu upravovat, kontrolovat a přizpůsobovat kroky v procesu “delivery“. Například Continious Integration neboli Nepřetržitá integrace je postup vývoje softwaru, kde každá aplikovaná změna automaticky vyvolá test samotného buildu (sestavení). Tento proces zajišťuje intregraci kódu do funkční a spustitelné formy bez chyb. 

Základní diagram Jenkinsu:

Continious Integration/Nepřetržitá integrace je opravdu nezbytným aspektem ve firmách s více vývojáři. A proč? Protože každý vývojář provádí změny v kódu a každá změna a to bez výjimky má potenciální problémy. A právě z toho důvodu nástroj pro nepřetržitou integraci jako je právě Jenkins, pomáhá testovat, indetifikovat a řešit problémy před použitím, nebo jak se říká mergnutim změn.

V druhém díle si detailněji rozebereme další kroky(steps {} ) v Jenkins file jako je např. automatizované testování. 

 

🟡 Hledáte zajímavý projekt? Mrkněte, jak to u nás chodí a jaké kolegy aktuálně hledáme.

🟡 Máte kolegu nebo kamaráda, který se poohlíží po novém projektu? Zapojte se do našeho referral programu Doporuč a získejte finanční odměnu za doporučení.

🟡 Chtěli byste začít pracovat v IT? Stáhněte si náš ebook ZAČNĚTE PRACOVAT V IT: aneb od prvních krůčků po vysněnou práci, ve kterém vás provedeme krůček po krůčku informacemi, kurzy i praxí, které jsou tolik potřebné nejen pro ty, kteří chtějí změnit obor, ale i pro ty, kteří se chtějí pracovně posunout a dále se vzdělávat.

Nebo sdílejte tento článek, který třeba poslouží i vašim známým.

Chcete dostávat naše články pravidelně do schránky? Nechte nám tady svůj email a my si rádi zahrajeme na poštovní sovy.

Mohlo by vás také zajímat

Být či nebýt Test managerem?

čtení na 4 minuty 18.4.2023

Jak dobře znáte Jenkins? Díl II.

čtení na 4 minuty 8.8.2022

Jak začít jako junior software test...

čtení na 4 minuty 12.8.2020

Zaslouží si NFT tolik pozornosti?

čtení na 2 min. 24.3.2022

Agile, Waterfall, DevOps: základní ...

čtení na 8 minut 16.2.2022

Přehled pozic v IT a životní cyklus...

čtení na 5 minut 3.2.2022

Jak se o nás mluví?
Zeptejte se našich klientů…

Systeum
Systeum

„Systeum je jedním z největších dodavatelů našich testerských kapacit. Můžu říct, že kvalita uchazečů je vysoko nad průměrem. Také oceňuji velkou ochotu vyjít vstříc všem našim požadavkům.“

Head of test execution

„Systeum je dlouhodobý partner, u kterého máme jistotu, že kandidáti jsou kvalitní a prověření. Od roku 2015 máme díky nim fungující kvalitní seniorní týmy C++ embedded vývojářů a auto testerů.“

Head of Payment Application

„Systeum, thank you for your help to find the right fit to my team! I can recommend cooperation with you to everybody. Very professional, smooth and friendly.“

IT CIM Inventory Management Development

Příklady dlouhodobé spolupráce

Porsche Moneta Raiffeisenbank Generali Komerční banka Monster