I přes rostoucí konkurenci zůstává Jenkins jedním z nejoblíbenějších serverů pro kontinuální integraci. Vznikl během nechvalně proslulého rozkolu komunity Hudson, ke kterému došlo poté, co softwarový gigant Oracle převzal kontrolu nad open-sourcovaným systémem Hudson v kroku, který rozbouřil vývojářskou komunitu a rozpoutal na internetu vášnivou debatu.
Dobrou zprávou pro všechny vývojáře, kteří věří v důležitost udržení open-sourcovaného softwaru z rukou velkých korporací, je, že v následné bitvě Hudson vs. Jenkins zvítězil právě Jenkins.
Částečným důvodem bylo obrovské množství vynikajících zásuvných modulů Jenkins, které byly vyvinuty komunitou Jenkins. V současné době má Jenkins více než 1 500 zásuvných modulů, které pomáhají vývojářům automatizovat velké části vývoje projektů. Tyto zásuvné moduly mohou pomoci s různými úkoly, od pomoci s kontinuálním dodáváním, přes přenos souborů z jednoho projektu do druhého, zobrazení projektů Jenkins v systému JIRA a tak dále a tak dále.
Protože každý z těchto zásuvných modulů řeší jiné problémy, není snadné vybrat ty nejlepší zásuvné moduly Jenkins. Takže místo toho, abych vyvolával kontroverze, se v tomto článku snažím podrobně popsat některé nejužitečnější zásuvné moduly, které pomáhají vývojářům šetřit čas a také jim usnadňují život.
Abych rozšířil atraktivitu tohoto článku, vybral jsem směs zásuvných modulů, z nichž některé osloví jednotlivé vývojáře a jiné budou užitečné pro velké vývojářské týmy.
- Job DSL
Problém, se kterým se setkalo mnoho vývojářů, kteří se spoléhají na systém Jenkins a pracují na více úlohách, je nutnost opakovaně konfigurovat každou novou úlohu, kterou spustí. To je nejen velmi časově náročné (vezmeme-li v úvahu, že mnoho programátorů na plný úvazek pracuje na 100 úlohách ročně), ale také to může jejich práci opravdu zmonotónnit.
Zásuvný modul Job DSL Jenkins umožňuje programátorům pomocí jazyka Groovy definovat úlohy a konfigurovat pro ně společnou sadu položek. Zásuvný modul pak tyto skripty udržuje a automaticky aktualizuje informace o úlohách. To umožňuje programátorům vytvářet standardizované šablony pomocí jazyka DSL (Domain Specific Language), což usnadňuje nastavení nových projektů.
2. Plugin Job Generator
Pro projektové manažery a vývojové týmy, které se podílejí na vývoji rozsáhlých projektů, může být sledování postupu prací přinejlepším noční můrou. Zásuvný modul Jenkins Job Generator umožňuje projektovým manažerům, kteří mají na starosti určitou pipeline Jenkins, pověřit vývojáře ve svém týmu vytvářením nových šablon úloh, které pak mohou být použity ke spuštění nových projektů/odvětví vývoje.
Je sice možné to provést ručně, ale opět může být tento úkol časově velmi náročný, zejména pokud má váš projekt více pipeline. Výhodou pluginu Job Generator oproti výše uvedenému pluginu Job DSL je, že nevyžaduje, aby programátoři znali Groovy.
3. Plugin Performance
Jedná se o opravdu skvělý nástroj, se kterým si mohou vývojáři hrát. Umožňuje vývojářům zachytit reporty z celé řady testovacích nástrojů, mezi které patří JUnit, JMeter, Lago a Taurus od Twitteru. Informace týkající se výkonu vašeho projektu v systému Jenkins můžete zobrazit prostřednictvím grafů a tabulek. Toto je skvělý příklad špičkového pluginu pro Jenkins s grafy.
4. GitHub/GitLab Pull Request Builder
Tento velmi populární plugin Git pro Jenkins umožňuje vývojářům snadno automatizovat kontrolu kódu. Po iniciaci žádosti o pull request plugin načte zdrojový kód a výsledky sestavení, takže vývojáři mohou rychle zjistit, zda je jejich kód v pořádku.
Tento skvělý plugin také umožňuje vývojářům iniciovat automatické slučování za předpokladu, že kód projde kontrolou.
5. Zásuvný modul JIRA
Zásuvný modul JIRA, který byl vydán v prosinci 2016, v podstatě dělá to, co je na něm napsáno. Umožňuje vývojářům integrovat JIRA do systému Jenkins. Mnoho vývojových týmů používá JIRA poměrně často, takže možnost zobrazit Jenkins prostřednictvím JIRA pomáhá zefektivnit proces vývoje.
6. Kubernetes Plugin
Pro vývojové týmy, které provozují více projektů najednou, může být Jenkins někdy frustrující, protože nenabízí zrovna velkou škálovatelnost serverů. Tento problém řeší Kubernetes Plugin, který umožňuje těm vývojářům, kteří používají Kubernetes, automatizovat proces škálování běhu otroků Jenkins v prostředí Kubernetes.
Pro ty vývojáře, kteří používají Docker Swarm, pak Jenkins Self-Organizing Swarm Modules Plugin umožní přidat škálovatelnost Jenkins stejným způsobem. Po instalaci vám obě verze umožní pokračovat v práci s Jenkinsem, aniž byste se museli starat o problémy se škálovatelností.
7. Zásuvný modul Build Pipeline
Plynulá integrace je sice skvělý způsob vývoje projektů, ale také přináší řadu problémů. Udržet si přehled o všech aspektech postupu úloh včetně zajištění kvality může být při řešení složitých vícevrstvých projektů docela náročné.
Plugin Build Pipeline společnosti Jenkins umožňuje projektovým manažerům vytvořit řetězec propojených úloh, takže mohou získat mnohem jasnější přehled o všech fázích projektové pipeline. Zásuvný modul umožňuje manažerům rozhodnout, které kroky lze automatizovat a které vyžadují ruční zásah. Tento vynikající zásuvný modul skutečně umožňuje vývojářům převzít plnou kontrolu nad svými projekty, a proto jej používá tolik týmů zabývajících se vývojem softwaru.
8. SCM Sync Configuration Plugin
Ztracená konfigurační data nedala v noci spát nejednomu vedoucímu projektu. Nejenže náprava zabere čas, ale dá se jí také zcela předejít. Stejně jako lze zálohovat kód do úložišť, lze pomocí tohoto šikovného pluginu zálohovat i konfigurační soubory Jenkins.
Tento plugin SCM Sync Configuration Plugin umožňuje automatizované zálohování konfiguračních souborů do úložiště SCM. Nejen to, ale tento zásuvný modul také sleduje veškeré změny, čímž poskytuje správcům jasný přehled o všech změnách. Jedná se o oblíbený nástroj pro zálohování Jenkins, který by měl obsahovat každý vývojář Jenkins.
9. Zásuvný modul Jenkins Maven
Maven je velmi oblíbený, protože poskytuje snadno použitelné standardní uspořádání sestavení projektu. To pomáhá vývojářům šetřit čas na začátku projektů tím, že mohou skočit rovnou do hloubky a nemusí se starat o tento aspekt seznamování se s projektem.
Tento zásuvný modul umožňuje systému Jenkins monitorovat sestavení Maven, což umožňuje automatickou archivaci zpráv a pomáhá při paralelním nebo inkrementálním sestavování modulů atd. Snadno se nastavuje a nevyžaduje mnoho konfigurace systému Jenkins.
10 . Zásuvný modul Jenkins Subversion
Vzhledem k tomu, že obrovské množství vývojářů stále používá Apache Subversion, vznikla obrovská potřeba zásuvného modulu Jenkins, který by je integroval. Tento zásuvný modul bude monitorovat změny a spouštět nová sestavení podle potřeby a také automaticky aktualizovat pracovní prostor, aby byl připraven ke spuštění nového sestavení.