[Kurz] Program kurzu (obsah přednášky/semináře/rekvalifikace/studia) ...
Cíle kurzu Účastníci se mimo jiné naučí:
- Vědět kde v Jenkinsi co najít a na co kliknout
- Porozumět CI/CD praktikám a jejich hodnotě
- Jakou zvolit úroveň zabezpečení Jenkins pro jejich potřeby
- Vytvářet a konfigurovat Jenkins projekty
- Jak pracovat s jistými Jenkins pluginy a které se vyplatí používat
- Navrhnout CI/CD workflow pro Git-Flow metodologii
* Účastníci se mimo jiné naučí:
- Vědět kde v Jenkinsi co najít a na co kliknout
- Porozumět CI/CD praktikám a jejich hodnotě
- Jakou zvolit úroveň zabezpečení Jenkins pro jejich potřeby
- Vytvářet a konfigurovat Jenkins projekty
- Jak pracovat s jistými Jenkins pluginy a které se vyplatí používat
- Navrhnout CI/CD workflow pro Git-Flow metodologii
Osnova Základní koncepty
- SCM, CI a CD, Testování, CloudBees
- definice Continuous Integration, Continuous Delivery, Continuous Deployment
- rozdíl mezi CI a CD a jejich fáze
- kontext v jakém byl primárně Jenkins vyvinut
Jenkins Core
- základní stavební bloky Jenkinse
- JENKINS_HOME, adresářová struktura a zamýšlená funkcionalita
- Jenkins pluginy a možnosti rozšíření
Průvodce instalací
- instalace Jenkins
- doporučené pluginy
- průvodcem podporované typy konfigurací
Jenkins Pluginy
- co jsou Jenkins pluginy a jakou mohou mít funcionalitu?
- Plugin manager
- Vyhledávání pluginů a jejich konfigurace
Jenkins Joby
- co jsou Jenkins Joby?
- rozdělení dle typů (Freestyle, Matrix, Pipeline, …)
- organizace jobů v Jenkinsi
- konfigurace jobu a historie změn
- hierarchická struktura jobů pomocí složek
Jenkins Buildy
- co jsou Jenkins Buildy?
- základní stavební prvky buildu - repositories, steps, triggers, artifacts
- skriptování a jejich role v buildech
Repozitáře, SCM
- práce s gitem, konfigurace SCM pluginu
- Jenkins changelogy
- check-in, větve a mergeovací strategie
Testování
- výhody testování s Jenkinsem
- definice unit testy, smoke testy, akceptační testy, regresní testy
- reporty - test run, code coverage, robot framework
- statusy buildu - stabilní, nestabilní, OK, chyba, …
Notifikace
- důležitost notifikací a proč je používat
- typy, nastavení a použítí notifikací
Jenkins Artefakty a Fingerprinty
- co jsou Jenkins build Artefakty
- použití a kopírování artefaktů
- retence a ukládání artefaktů
- co a k čemu jsou Fingerprinty
Bezpečnost
- AAA, autentikace, autorizace, auditing
- security realm a Matrix security
- zdroje uživatelů
- credentials - hesla, SSH klíče, tajné soubory
Distibuované Buildy
- co jsou Jenkins Agenti?
- Master-Agent(slave) topologie
- labely a jak je používat
- co je Jenkins Exekutor a jak je nastavit
Globální nástroje
- instalace nástrojů a jejich použítí
- reprodukovatelné buildy přes vícero agentů
Parametrizované joby a jejich řetězení
- použití parametrizovaných jobů
- upstream a downstream joby, build pipeline plugin
- pouštění buildu různými způsoby (push/pull)
Předpoklady účastníka
- alespoň základy skriptování (Bash, Python, PowerShell nebo jiný skriptovací jazyk)
- praktické ovládání verzovacího nástroje (Git, příp. SVN)
- kurz j