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

PDF
Brno PéHáPkáři 34 - Swarmpit.io
PPTX
WebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlům
PDF
Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...
PDF
Jak tu věc dostat do produkce (WordCamp Praha 2018)
PPTX
Zonky QA Meetup
ODP
WordCamp Bratislava 2017 - Martin Hlaváč
PDF
Cesta k frontendové revoluci na běžícím projektu v podání Vue.js na akci Veli...
PDF
Trendy a nové možnosti test automation
Brno PéHáPkáři 34 - Swarmpit.io
WebTop100 Case study MEGAPIXEL – Redesign spuštěný proti pravidlům
Péhápkaři v Pecce: Jak si lokálně spustit Travis CI Build – Jakub Englický – ...
Jak tu věc dostat do produkce (WordCamp Praha 2018)
Zonky QA Meetup
WordCamp Bratislava 2017 - Martin Hlaváč
Cesta k frontendové revoluci na běžícím projektu v podání Vue.js na akci Veli...
Trendy a nové možnosti test automation

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

PDF
Základní práce s příkazovým řádkem
PDF
SymfonyCon Cluj 2017
PDF
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
PDF
Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přáte...
PDF
Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
PDF
Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018
PDF
David Brožík - Škálování týmů, procesů a technologií od 4 developerů po 150
PDF
20110511 Vývoj software - produktivně, efektivně, kvalitně
PDF
Verzovani kodu s Gitem (Karel Minarik)
PDF
node.js: zápisky z fronty (Battle guide to node.js)
PPTX
Deployment PHP aplikací | WebExpo 2011
PDF
Tipy a triky, best practices, deployment, testování
PPTX
GitLab CI/CD Intro (Continuous Integration/Continuous Deployment)
PDF
Testování RESTful API v rámci continuous integration
ODP
Git CZ
PDF
Proč používat GitHub?
PDF
Deployment prakticky
PDF
TwigX: pište PHP šablony jako v Reactu
PDF
Pehapkari expressive-2019
Základní práce s příkazovým řádkem
SymfonyCon Cluj 2017
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Tomáš Votruba – Jako Vinnetou a Old Shatterhand – refaktoruj nenávist v přáte...
Vinettou a Old Shatterhand (PhpLive.cz, jaro 2016)
Péhápkaři v Pecce: phpDay2018 Verona - Jan Kadeřábek - 16. 5. 2018
David Brožík - Škálování týmů, procesů a technologií od 4 developerů po 150
20110511 Vývoj software - produktivně, efektivně, kvalitně
Verzovani kodu s Gitem (Karel Minarik)
node.js: zápisky z fronty (Battle guide to node.js)
Deployment PHP aplikací | WebExpo 2011
Tipy a triky, best practices, deployment, testování
GitLab CI/CD Intro (Continuous Integration/Continuous Deployment)
Testování RESTful API v rámci continuous integration
Git CZ
Proč používat GitHub?
Deployment prakticky
TwigX: pište PHP šablony jako v Reactu
Pehapkari expressive-2019
Ad

More from PeckaDesign.cz (20)

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

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ý