Co dělá automatizace po pushi, proč volá tentýž příkaz jako vy lokálně a jak se hlídá, aby se ta dvě prostředí nerozešla.
A608Inženýrství9 minVývojářMaintainer
Po téhle lekci
Popíšete, co se stane po pushi do hlavní větve.
Vysvětlíte, proč CI nesmí mít vlastní seznam kroků.
Poznáte, kdy je červené CI problém prostředí a kdy kódu.
Co běží
Po pushi do hlavní větve: instalace závislostí, nastavení generátoru, kontrola šablon a vnitřních odkazů, kanonická brána, prohlížečové testy, a při úspěchu nahrání vydaného webu k publikaci.
CI nemá vlastní seznam kroků
Automatizace volá tentýž npm run build, jaký spouštíte lokálně. Nemá vlastní výčet.
Není to elegance — je to oprava po skutečném incidentu. Když si CI drželo vlastní seznam, kroky přidané do brány se do něj nedostaly, a část výstupů tak v produkci chyběla, přestože lokálně všechno procházelo. Samostatná kontrola dnes hlídá, aby se ty dvě definice nemohly rozejít znovu.
Červené CI: prostředí, nebo kód?
Kód — chyba se reprodukuje lokálně týmž příkazem. To je většina případů a je to ta lepší varianta.
Prostředí — lokálně zeleno, v CI ne. Typicky: jiná verze nástroje, citlivost na velikost písmen v názvech souborů, časový limit úlohy, nebo externí zdroj blokující automatizovaný přístup.
Diagnostika začíná stejně: pustit lokálně přesně ten příkaz, který selhal v CI. Když projde, hledá se rozdíl prostředí, ne v kódu.
Ověř si, že to sedí
CI hlásí chybu v kroku, který u vás lokálně prošel. Co uděláte první?Zobrazit odpověďSkrýt odpověď
Pustíte lokálně přesně ten příkaz, který v CI spadl — ne celou bránu, ale ten konkrétní krok, a se stejnými parametry.
Pak jsou tři možnosti:
Spadne stejně → je to chyba kódu nebo dat, ladí se lokálně.
Projde → rozdíl je v prostředí. Ověřte verze nástrojů, zda nejde o soubor, který u vás existuje jen lokálně (typicky odvozený výstup mimo verzování), a zda krok nesahá na síť.
Spadne jinak → nejspíš pracujete nad jiným stavem generovaných souborů. Přegenerujte a zkuste znovu.
Nejčastější příčina v tomhle repozitáři je varianta 2 s odvozeným souborem: lokálně existuje z předchozího běhu, v čerstvém klonu ne.
Kanonické znění pojmů
Lekce pojem vysvětluje. Závazná definice je tady — když se rozejdou, platí tahle stránka.