ݺߣ

ݺߣShare a Scribd company logo
10.03.2022
Vyrobil DCC
Ver1.0
INTRO
by DevOps (guild) Inkubátor
Ver1.1
Obsah
What is CI/CD …………………………...……………………………………………….
GitLab Runner …………………………….…………………………………………….
GitLab yml ……………………………………………………………………………….
GitLab Variables ……………………………………………………………………….
2
What is CI/CD?
3
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Continuous Integration
Continuous Delivery
Continuous Deployment
1. Code changes (push to GIT)
2. Build *
3. Automate Testing
4. Test Not OK
5. Report to Developer
6. Developer Fix bugs - return
to step 1
7. Test OK
6. Build *
7. Deploy to repository
8. Managed Approve to
deploy to production
9. Build *
10. Deploy to repository
11. Automate deploy to
production
CI/CD
4
CI/CD
5
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Zkráceně lze říct, že
● Continuous Integration zajišťuje automatickou integraci kódu,
● Continuous Deployment zajišťuje automatické nasazení a
● Continuous Delivery zajišťuje, že software je připraven k nasazení, ale nasazen není automaticky.
Runners
6
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Runners
7
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
● Shared
● Specific
● Shared
● Specific
Runners Registration
8
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Register:
docker run 
--rm 
-t -i 
-v /srv/gitlab-runner/config:/etc/gitlab-runner 
-v /var/run/docker.sock:/var/run/docker.sock 
gitlab/gitlab-runner register -n 
--url "https://gitlab.bootiq.io/" 
--registration-token "<<token>>" 
--executor docker 
--description "monet-docker-runner-1" 
--docker-image "alpine:latest" 
--tag-list "docker,aws"
Run:
docker run -d --name gitlab-runner 
--restart always 
-v /srv/gitlab-runner/config:/etc/gitlab-runner 
-v /var/run/docker.sock:/var/run/docker.sock 
gitlab/gitlab-runner:latest
Základní pojmy - Pipeline
9
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Reference : https://docs.gitlab.com/ee/ci/pipelines/
● popisuje celý proces sestavování, testování a nasazování aplikace
● je plně konfigurovatelná pomoví Gitlab CI/CD souboru v projektu (.gitlab-ci.yml)
● umožňuje automatizovat a zefektivnit proces vývoje software a udržovat vysokou kvalitu
kódu
● pomáhá snížit rizika a urychlit proces vývoje a nasazování aplikací.
● Navigace v projektu -> Menu projektu -> CI/CD -> Pipelines
Základní pojmy - Stages
10
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Reference : https://docs.gitlab.com/ee/ci/pipelines/
● slouží k oddělení jednotlivých fází v procesu sestavování, testování a nasazování.
● skládají se z několika Jobů (jeden nebo více)
● vykonávají se postupně
● vykonávají se v závislosti na výsledku předchozích Jobů
Example:
1. Build: Sestavování a kompilace kódu.
2. Test: Automatické testování kódu.
3. Deploy: Nasazení aplikace na produkční
prostředí.
Základní pojmy - Jobs
11
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Reference : https://docs.gitlab.com/ee/ci/jobs/
● jsou jednotlivé úlohy, které se vykonávají během pipeline
● každý Job se skládá z jedné nebo více úloh (příkazů, scriptů), které se vykonávají ve
specifickém pořadí (konfigurace .gitlab-ci.yml)
● Joby se pouštějí na virtuálním nebo fyzickém stroji (pouští je Gitlab Runner)
● Výsledky Jobů je možné sledovat v Gitlab GUI jako výpis z konzole
● Navigace v projektu -> Menu projektu -> CI/CD -> Jobs
○ nebo v konkrétním detailu Pipeline
Základní pojmy - Jobs
12
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Reference : https://docs.gitlab.com/ee/ci/jobs/
Nepovolená “klíčová slova” názvů Jobů
maximální počet znaků je 255
● image
● services
● stages
● types
● before_script
● after_script
● variables
● cache
● include
● true
● false
● nil
● pages:deploy configured for a deploy stage
Jak “schovat” Job aby se nepouštěl?
1. zakomentování jobu “#” :)
2. přidáním před název Jobu “tečku” ( . )
Výhody hidden jobů s “tečkou”
● mohu je znovu-použít v jakémkoliv jiném jobu
pomocí odkazování (Anchors) nebo rozšíření-extenzí
(Extends)
Configuration .yml
13
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Keyword Reference : https://docs.gitlab.com/ee/ci/yaml/
Optimization Configuration .yml
14
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Anchors & Odkazování https://docs.gitlab.com/ee/ci/yaml
/yaml_optimization.html
https://cs.wikipedia.org/wiki/YAML
Optimization Configuration .yml
15
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Rozšíření - Extends https://docs.gitlab.com/ee/ci/ya
ml/index.html#extends
https://docs.gitlab.com/ee/ci/yaml
/yaml_optimization.html
https://cs.wikipedia.org/wiki/YAML
Optimization Configuration .yml
16
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
https://docs.gitlab.com/ee/ci/yaml
/yaml_optimization.html
Optimization Configuration .yml
17
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
https://docs.gitlab.com/ee/ci/yaml
/yaml_optimization.html
Gitlab-ci.yml templates
18
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Private - Bootiq Fintech Templates :
https://gitlab.bootiq.io/jira-finn/tools/gitlab-ci
Public Gitlab Templates :
https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gi
tlab/ci/templates
Configuration .yml - Include, templates
19
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Variables (Group > Project > Environment > Job)
20
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Predefined Variables - “$CI_”
https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
Rules
21
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná esource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
● rules
● only
● except
rules:
- if: '$MANUAL'
when: manual
- if: '$REVIEW_DISABLED'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
when: never
- if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH'
● if: $VAR == “some value”
● if: $VAR != “some value”
● if: “some value” == $VAR
● Another especial cases:
○ if: $VAR == null # check if the $VAR is undefined
○ if: $VARIABLE # check if the $VAR exists
Expressions result as true if:
● If the content is found when using =~.
● Matches are not found when using !~.
● Example:
a. $VAR =~ /^string.*/
b. $VAR1 !~ /^string.*/
Trigger pipeline
22
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Tips & tricks
23
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Existuje několik dobrých postupů pro vytváření souboru .gitlab-ci.yml v Gitlabu:
1. Používejte jednoduchou a čitelnou syntaxi: Gitlab CI/CD používá syntaxi YAML, takže se ujistěte, že Váš
soubor je jednoduchý a snadno čitelný.
2. Používejte cache pro rychlejší sestavování: Uložením a použitím cache můžete zrychlit sestavování a
ušetřit čas.
3. Snažte se o konsolidaci stejných úloh: Pokud se více úloh používá stejné nastavení, můžete je
konsolidovat do jedné úlohy, což snižuje složitost a zlepšuje čitelnost.
4. Používejte environment proměnné pro uchovávání citlivých informací: Místo přidávání citlivých informací
přímo do souboru .gitlab-ci.yml je můžete uchovávat v prostředích proměnných.
5. Používejte stage, když je to možné: Stages umožňují oddělit jednotlivé fáze sestavování, což umožňuje
jednodušší sledování a správu.
6. Pro psaní konfigurace (.gitlab-ci.yml) využívejte GUI Gitlabu. Má nástroje pro editaci, validaci,
vizualizaci a pohled reálného výsledku konfigurace. (Menu Projektu -> CI/CD -> Editor)
Tyto postupy jsou základem pro začátek, ale mohou se lišit v závislosti na specifických potřebách vašeho
projektu.
ThankYou
24
• Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.)
• Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují
• Zná a dokáže využívat nástroje pro řízení portfolia
• Zná resource management a dokáže řídit zdroje v delivery organizaci
• Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů
• Zná projektové a agilní role a jejich rozdíly
• Dokáže rozvíjet klíčové role (projekty i agilita)
Díky za pozornost
Lukáš PAISKR
lukas.paiskr@gmail.com
https://github.com/keltuo
Disclaimer: Obsah byl převzat z dokumentace Gilatbu, Interní Dokumentace Bootiq,
Google Obrázky a při některých přesnějších popisků pomohl Chat GPT. :-)

More Related Content

GitLab CI/CD Intro (Continuous Integration/Continuous Deployment)

  • 2. Obsah What is CI/CD …………………………...………………………………………………. GitLab Runner …………………………….……………………………………………. GitLab yml ………………………………………………………………………………. GitLab Variables ………………………………………………………………………. 2
  • 3. What is CI/CD? 3 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita)
  • 4. Continuous Integration Continuous Delivery Continuous Deployment 1. Code changes (push to GIT) 2. Build * 3. Automate Testing 4. Test Not OK 5. Report to Developer 6. Developer Fix bugs - return to step 1 7. Test OK 6. Build * 7. Deploy to repository 8. Managed Approve to deploy to production 9. Build * 10. Deploy to repository 11. Automate deploy to production CI/CD 4
  • 5. CI/CD 5 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Zkráceně lze říct, že ● Continuous Integration zajišťuje automatickou integraci kódu, ● Continuous Deployment zajišťuje automatické nasazení a ● Continuous Delivery zajišťuje, že software je připraven k nasazení, ale nasazen není automaticky.
  • 6. Runners 6 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita)
  • 7. Runners 7 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) ● Shared ● Specific ● Shared ● Specific
  • 8. Runners Registration 8 • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Register: docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner register -n --url "https://gitlab.bootiq.io/" --registration-token "<<token>>" --executor docker --description "monet-docker-runner-1" --docker-image "alpine:latest" --tag-list "docker,aws" Run: docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
  • 9. Základní pojmy - Pipeline 9 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Reference : https://docs.gitlab.com/ee/ci/pipelines/ ● popisuje celý proces sestavování, testování a nasazování aplikace ● je plně konfigurovatelná pomoví Gitlab CI/CD souboru v projektu (.gitlab-ci.yml) ● umožňuje automatizovat a zefektivnit proces vývoje software a udržovat vysokou kvalitu kódu ● pomáhá snížit rizika a urychlit proces vývoje a nasazování aplikací. ● Navigace v projektu -> Menu projektu -> CI/CD -> Pipelines
  • 10. Základní pojmy - Stages 10 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Reference : https://docs.gitlab.com/ee/ci/pipelines/ ● slouží k oddělení jednotlivých fází v procesu sestavování, testování a nasazování. ● skládají se z několika Jobů (jeden nebo více) ● vykonávají se postupně ● vykonávají se v závislosti na výsledku předchozích Jobů Example: 1. Build: Sestavování a kompilace kódu. 2. Test: Automatické testování kódu. 3. Deploy: Nasazení aplikace na produkční prostředí.
  • 11. Základní pojmy - Jobs 11 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Reference : https://docs.gitlab.com/ee/ci/jobs/ ● jsou jednotlivé úlohy, které se vykonávají během pipeline ● každý Job se skládá z jedné nebo více úloh (příkazů, scriptů), které se vykonávají ve specifickém pořadí (konfigurace .gitlab-ci.yml) ● Joby se pouštějí na virtuálním nebo fyzickém stroji (pouští je Gitlab Runner) ● Výsledky Jobů je možné sledovat v Gitlab GUI jako výpis z konzole ● Navigace v projektu -> Menu projektu -> CI/CD -> Jobs ○ nebo v konkrétním detailu Pipeline
  • 12. Základní pojmy - Jobs 12 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Reference : https://docs.gitlab.com/ee/ci/jobs/ Nepovolená “klíčová slova” názvů Jobů maximální počet znaků je 255 ● image ● services ● stages ● types ● before_script ● after_script ● variables ● cache ● include ● true ● false ● nil ● pages:deploy configured for a deploy stage Jak “schovat” Job aby se nepouštěl? 1. zakomentování jobu “#” :) 2. přidáním před název Jobu “tečku” ( . ) Výhody hidden jobů s “tečkou” ● mohu je znovu-použít v jakémkoliv jiném jobu pomocí odkazování (Anchors) nebo rozšíření-extenzí (Extends)
  • 13. Configuration .yml 13 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Keyword Reference : https://docs.gitlab.com/ee/ci/yaml/
  • 14. Optimization Configuration .yml 14 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Anchors & Odkazování https://docs.gitlab.com/ee/ci/yaml /yaml_optimization.html https://cs.wikipedia.org/wiki/YAML
  • 15. Optimization Configuration .yml 15 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Rozšíření - Extends https://docs.gitlab.com/ee/ci/ya ml/index.html#extends https://docs.gitlab.com/ee/ci/yaml /yaml_optimization.html https://cs.wikipedia.org/wiki/YAML
  • 16. Optimization Configuration .yml 16 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) https://docs.gitlab.com/ee/ci/yaml /yaml_optimization.html
  • 17. Optimization Configuration .yml 17 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) https://docs.gitlab.com/ee/ci/yaml /yaml_optimization.html
  • 18. Gitlab-ci.yml templates 18 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Private - Bootiq Fintech Templates : https://gitlab.bootiq.io/jira-finn/tools/gitlab-ci Public Gitlab Templates : https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gi tlab/ci/templates
  • 19. Configuration .yml - Include, templates 19 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita)
  • 20. Variables (Group > Project > Environment > Job) 20 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Predefined Variables - “$CI_” https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
  • 21. Rules 21 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná esource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) ● rules ● only ● except rules: - if: '$MANUAL' when: manual - if: '$REVIEW_DISABLED' when: never - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' when: never - if: '$CI_COMMIT_TAG || $CI_COMMIT_BRANCH' ● if: $VAR == “some value” ● if: $VAR != “some value” ● if: “some value” == $VAR ● Another especial cases: ○ if: $VAR == null # check if the $VAR is undefined ○ if: $VARIABLE # check if the $VAR exists Expressions result as true if: ● If the content is found when using =~. ● Matches are not found when using !~. ● Example: a. $VAR =~ /^string.*/ b. $VAR1 !~ /^string.*/
  • 22. Trigger pipeline 22 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita)
  • 23. Tips & tricks 23 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Existuje několik dobrých postupů pro vytváření souboru .gitlab-ci.yml v Gitlabu: 1. Používejte jednoduchou a čitelnou syntaxi: Gitlab CI/CD používá syntaxi YAML, takže se ujistěte, že Váš soubor je jednoduchý a snadno čitelný. 2. Používejte cache pro rychlejší sestavování: Uložením a použitím cache můžete zrychlit sestavování a ušetřit čas. 3. Snažte se o konsolidaci stejných úloh: Pokud se více úloh používá stejné nastavení, můžete je konsolidovat do jedné úlohy, což snižuje složitost a zlepšuje čitelnost. 4. Používejte environment proměnné pro uchovávání citlivých informací: Místo přidávání citlivých informací přímo do souboru .gitlab-ci.yml je můžete uchovávat v prostředích proměnných. 5. Používejte stage, když je to možné: Stages umožňují oddělit jednotlivé fáze sestavování, což umožňuje jednodušší sledování a správu. 6. Pro psaní konfigurace (.gitlab-ci.yml) využívejte GUI Gitlabu. Má nástroje pro editaci, validaci, vizualizaci a pohled reálného výsledku konfigurace. (Menu Projektu -> CI/CD -> Editor) Tyto postupy jsou základem pro začátek, ale mohou se lišit v závislosti na specifických potřebách vašeho projektu.
  • 24. ThankYou 24 • Má zkušenost se řízením portfolia zakázek (projektů, agilních dodávek atd.) • Dokáže nastavit reporting zakázek, který zejména ukazuje, jak performují • Zná a dokáže využívat nástroje pro řízení portfolia • Zná resource management a dokáže řídit zdroje v delivery organizaci • Má zkušenost se řízením PMs, PMO, týmu SM nebo agilních koučů • Zná projektové a agilní role a jejich rozdíly • Dokáže rozvíjet klíčové role (projekty i agilita) Díky za pozornost Lukáš PAISKR lukas.paiskr@gmail.com https://github.com/keltuo Disclaimer: Obsah byl převzat z dokumentace Gilatbu, Interní Dokumentace Bootiq, Google Obrázky a při některých přesnějších popisků pomohl Chat GPT. :-)