SlideShare a Scribd company logo
Kuba Englický / Developer
Sbohem PeckaCI, vítej GitHub Actions
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Pecka CI — původní motivace (2016)
● Přednáška z roku 2018 https://youtu.be/pDiZOBuC4Fo
● Preview App pro každý PR
● Spuštění základních operací (CS, PHPStan, Nette Tester)
● CI napsáno v PHP
● Reaguje na konkrétní target v Makefile
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Pecka CI — specifika
● Výstupy do souborů (output.phpstan, output.cs)
● Makefile — specifický pro lokální spuštění a spuštění v CI
● Exit Code vždy 0
● Logy součástí aplikace Pecka CI
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Travis CI
● Měli jsme na open-source projektech + placené 2 runnery
● Později se Travis poměrně zkazil dlouhé čekání na spuštění buildu
● Změna pricingu, který již nebyl výhodný
● Není důvod tříštit CI jinam, když Github již má své CI (Github Actions)
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Proč Github Actions?
● Celá firma jede kompletně v Githubu (issue, pull request, board)
● Jeden pricing
● Zkušenosti z jiných automatizací
(štítkování, přířazení autora, přepínání stavů)
● Standardizované prostředí
● Rychlý náhled na to, co se nepodařilo
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Jednotné prostředí
● Všechny naše projekty vycházejí z jednoho jádra
● Mají tedy podobné závislosti (composer, npm)
● Máme tedy peckadesign/php image, nad kterým jsme schopni spouštět všechny akce
● Github Actions umožňuje spuštění konkrétních kontejnerů i použití docker-compose
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Migrace
● Minimální zásah do projektu
● Ideálně copy & paste
● Vycházíme ze stejných Makefile targetů, jen se sjednotili
● Úpravy vlastních scriptů, aby docházelo ke správných exit kódům
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Výsledek
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Self-hosted runner
● Github umožňuje spuštění runnerů na vlastním železe
● Dokumentace:
https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners
● Vyšší výkon než runnery přímo hostového u Githubu
● Běh nativně, Docker, K8s a další
● Automatické škálování
● runs-on: [ self-hosted ]
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Self-hosted výhody pro nás
● běh v K8s
● security issue - ve vnitřní síti firmy
● restart po každém použití
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Preview App — původní řešení
● Na serveru složka staging
● Rozkopírování na jednotlivé testy
● Git checkout větve daného PR
● Spuštění Makefile targetu pro sestavení
● V případě nesestavení bylo velmi náročné dohledat, kde nastal problém
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Preview App — Kubernetes
● V Github Actions checkout aktuálního PR
● Docker Build
● Docker Push do privátního registry
● kubectl apply v K8s clusteru
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Výsledek
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Výsledek
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Výsledek
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Otázky?
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický
Díky za pozornost
FB facebook.com/peckadesign TW @kubaenglicky
Sbohem PeckaCI, vítej GitHub Actions
Jakub Englický

More Related Content

Similar to Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27.10.2021

Python v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátoraPython v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátora
Michal Špaček
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Develcz
 

Similar to Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27.10.2021 (16)

Proč používat GitHub?
Proč používat GitHub?Proč používat GitHub?
Proč používat GitHub?
 
Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)Verzovani kodu s Gitem (Karel Minarik)
Verzovani kodu s Gitem (Karel Minarik)
 
VersionPress – proč, jak a za kolik (#wcbratislava 2016)
VersionPress – proč, jak a za kolik (#wcbratislava 2016)VersionPress – proč, jak a za kolik (#wcbratislava 2016)
VersionPress – proč, jak a za kolik (#wcbratislava 2016)
 
Tipy a triky, best practices, deployment, testování
Tipy a triky, best practices, deployment, testováníTipy a triky, best practices, deployment, testování
Tipy a triky, best practices, deployment, testování
 
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOSPavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
Pavel Cvetler: Jeden kód, co vládne všem? Žádný problém pro Android i iOS
 
Python v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátoraPython v PostgreSQL pohledem PHP programátora
Python v PostgreSQL pohledem PHP programátora
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
Ondřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featuryOndřej Hlaváček: Životní cyklus featury
Ondřej Hlaváček: Životní cyklus featury
 
GIT
GITGIT
GIT
 
Just KISS Nette
Just KISS NetteJust KISS Nette
Just KISS Nette
 
Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?
 
Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018
Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018
Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018
 
SymfonyCon Cluj 2017
SymfonyCon Cluj 2017SymfonyCon Cluj 2017
SymfonyCon Cluj 2017
 
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.comJak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
Jak na více Docker kompozic na lokále | Jan Drábek | 15. 2. 2023 – Kiwi.com
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
 
SEO Restart 2023: Lukáš Kostka - AI a R studio – optimalizace meta tagů na ,,...
SEO Restart 2023: Lukáš Kostka - AI a R studio – optimalizace meta tagů na ,,...SEO Restart 2023: Lukáš Kostka - AI a R studio – optimalizace meta tagů na ,,...
SEO Restart 2023: Lukáš Kostka - AI a R studio – optimalizace meta tagů na ,,...
 

More from PeckaDesign.cz

More from PeckaDesign.cz (20)

Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
Péhápkaři v Pecce: Naše cesta k read-modelu – Vojtěch Buba –18. 5. 2022
 
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
Péhápkaři v Pecce: Jak zrefaktorovat letitou aplikaci a zároveň začít na zele...
 
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
Péhápkaři v Pecce: Podpora PHP8 v Kdyby/Redis a Kdyby/RabbitMQ – Václav Čevel...
 
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
Péhápkaři v Pecce: Půl roku na cestách jako digitální nomád – Jan Kadeřábek –...
 
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
Péhápkaři v Pecce: Vývoj vlastního 'ORM' – Václav Čevela – 20. 11. 2019
 
Tvorba nových vstupních stránek z pohledu SEO
Tvorba nových vstupních stránek z pohledu SEO Tvorba nových vstupních stránek z pohledu SEO
Tvorba nových vstupních stránek z pohledu SEO
 
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
Péhápkaři v Pecce: pd/forms – Petr Klobás – 16. 10. 2019
 
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
Péhápkaři v Pecce: Za hranicemi DateTime – Jiří Pudil – 16. 10. 2019
 
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
Péhápkaři v Pecce: Úvod do monitoringu – Tomáš Kozák – 16. 10. 2019
 
Asynchronní programování
Asynchronní programováníAsynchronní programování
Asynchronní programování
 
ElasticSearch Dump
ElasticSearch DumpElasticSearch Dump
ElasticSearch Dump
 
Pokročilá validace síly hesla
Pokročilá validace síly heslaPokročilá validace síly hesla
Pokročilá validace síly hesla
 
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
Péhápkaři v Pecce: Každodenní problémy s implementací Facebook Api – Marek Hu...
 
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
Péhápkaři v Pecce: Čtyři hlavní příčiny dysfunkčních návyků v týmu – Michal A...
 
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
Péhápkaři v Pecce: Jak jsme neposlali pull request do PHP – Milan Pála – 17. ...
 
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
Péhápkaři v Pecce: Zend Expressive: PSR framework který vás dostane – Jan Kad...
 
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
Péhápkaři v Pecce: Jak na bezpečnostní hlavičky – Marek Humpolík – 23. 1. 2019
 
PeckaAcademy - Zbožové srovnávače od A-Z - Petra Mariánková
PeckaAcademy - Zbožové srovnávače od A-Z - Petra MariánkováPeckaAcademy - Zbožové srovnávače od A-Z - Petra Mariánková
PeckaAcademy - Zbožové srovnávače od A-Z - Petra Mariánková
 
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
Péhápkaři v Pecce: A refactoring Journey – From Legacy to Laravel – Christ...
 
Péhápkaři v Pecce: Validujte vstupní data pomocí objektů – Václav Čev...
Péhápkaři v Pecce: Validujte vstupní data pomocí objektů – Václav Čev...Péhápkaři v Pecce: Validujte vstupní data pomocí objektů – Václav Čev...
Péhápkaři v Pecce: Validujte vstupní data pomocí objektů – Václav Čev...
 

Péhápkaři v Pecce: Sbohem PeckaCI, vítej Github Actions – Jakub Englický –27.10.2021

  • 1. Kuba Englický / Developer Sbohem PeckaCI, vítej GitHub Actions FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 2. Pecka CI — původní motivace (2016) ● Přednáška z roku 2018 https://youtu.be/pDiZOBuC4Fo ● Preview App pro každý PR ● Spuštění základních operací (CS, PHPStan, Nette Tester) ● CI napsáno v PHP ● Reaguje na konkrétní target v Makefile FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 3. Pecka CI — specifika ● Výstupy do souborů (output.phpstan, output.cs) ● Makefile — specifický pro lokální spuštění a spuštění v CI ● Exit Code vždy 0 ● Logy součástí aplikace Pecka CI FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 4. Travis CI ● Měli jsme na open-source projektech + placené 2 runnery ● Později se Travis poměrně zkazil dlouhé čekání na spuštění buildu ● Změna pricingu, který již nebyl výhodný ● Není důvod tříštit CI jinam, když Github již má své CI (Github Actions) FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 5. Proč Github Actions? ● Celá firma jede kompletně v Githubu (issue, pull request, board) ● Jeden pricing ● Zkušenosti z jiných automatizací (štítkování, přířazení autora, přepínání stavů) ● Standardizované prostředí ● Rychlý náhled na to, co se nepodařilo FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 6. Jednotné prostředí ● Všechny naše projekty vycházejí z jednoho jádra ● Mají tedy podobné závislosti (composer, npm) ● Máme tedy peckadesign/php image, nad kterým jsme schopni spouštět všechny akce ● Github Actions umožňuje spuštění konkrétních kontejnerů i použití docker-compose FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 7. Migrace ● Minimální zásah do projektu ● Ideálně copy & paste ● Vycházíme ze stejných Makefile targetů, jen se sjednotili ● Úpravy vlastních scriptů, aby docházelo ke správných exit kódům FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 8. Výsledek FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 9. FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 10. FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 11. Self-hosted runner ● Github umožňuje spuštění runnerů na vlastním železe ● Dokumentace: https://docs.github.com/en/actions/hosting-your-own-runners/adding-self-hosted-runners ● Vyšší výkon než runnery přímo hostového u Githubu ● Běh nativně, Docker, K8s a další ● Automatické škálování ● runs-on: [ self-hosted ] FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 12. Self-hosted výhody pro nás ● běh v K8s ● security issue - ve vnitřní síti firmy ● restart po každém použití FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 13. Preview App — původní řešení ● Na serveru složka staging ● Rozkopírování na jednotlivé testy ● Git checkout větve daného PR ● Spuštění Makefile targetu pro sestavení ● V případě nesestavení bylo velmi náročné dohledat, kde nastal problém FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 14. Preview App — Kubernetes ● V Github Actions checkout aktuálního PR ● Docker Build ● Docker Push do privátního registry ● kubectl apply v K8s clusteru FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 15. Výsledek FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 16. Výsledek FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 17. Výsledek FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 18. Otázky? FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický
  • 19. Díky za pozornost FB facebook.com/peckadesign TW @kubaenglicky Sbohem PeckaCI, vítej GitHub Actions Jakub Englický