Přejít na obsah

runnerhut

Průvodci

Řešení problémů CI, na které týmy skutečně narážejí.

náklady13

Jak snížit náklady na GitHub ActionsÚčet CI roste rychleji než tým a nikdo si není jistý proč.Jak měřit náklady CI na žádost o staženíZnáte měsíční součet, ale nevíte, kolik stojí jeden požadavek na stažení.Jak přiřadit náklady CI týmůmVýdaje za CI jsou na faktuře jeden řádek a žádný tým za ně necítí odpovědnost.Jak nastavit rozpočet CI minutVýdaje jsou zjišťovány na konci měsíce, nikoli kontrolovány v jeho průběhu.Když větší běžci skutečně šetří penízeVětší běžec stojí více za minutu, takže není jasné, zda je celkově levnější.Jak snížit náklady na běžce macOSmacOS dominuje účtu CI.Jak snížit náklady na výstup CIPřenos dat představuje velký a rostoucí podíl na účtu BYOC.Jak snížit náklady na stahování ECRStahování obrázků kontejnerů generuje značné poplatky za přenos dat.Jak snížit náklady na přenos S3 v CIProvoz mezipaměti a artefaktů do S3 je drahý.Skutečné náklady běžců s vlastním hostitelemSamoobslužní běžci vypadají vedle účtování za minutu zdarma.Jak používat instance spotů pro běžce CIInstance na vyžádání jsou drahé pro pracovní zátěže, které lze přirozeně opakovat.Jak správně nastavit velikost běžcůVelikosti běžců byly vybrány jednou a nikdy nebyly znovu navštíveny.Jak provozovat CI ekonomicky na open sourceOpen source CI je zdarma na serverech hostovaných na GitHubu, ale je pomalý a vlastní hostování není bezpečné.

Ukládání do mezipaměti16

Jak zajistit, aby mezipaměti CI skutečně přetrvávalyMezipaměti jsou nakonfigurovány, ale četnost návštěv je nízká.Jak obejít limit 10 GB mezipamětiVaše mezipaměti přesahují 10 GB na úložiště a začnou tiše vyklízet.Jak sdílet mezipaměť sestavení napříč repozitářiKaždé úložiště udržuje svou vlastní mezipaměť pro stejné sdílené závislosti.Jak sdílet mezipaměť Docker mezi úlohamiKaždá maticová noha přestavuje stejné vrstvy.Jak opravit zneplatnění mezipaměti DockerVrstvy Docker se znovu sestaví, i když se příslušné soubory nezměnily.Jak zapsat klíč mezipaměti, který zasáhneMezipaměť je nakonfigurována, ale chybí při každém spuštění.Jak používat ccache v GitHub ActionsSestavení C a C++ překompilují vše při každém spuštění.Jak používat sccache pro sestavení RustCargo znovu sestaví závislosti, kdykoli dojde k chybě mezipaměti cílového adresáře.Jak povolit mezipaměť konfigurace GradleGradle stráví 30 až 60 sekund konfigurací, než cokoliv zkompiluje.Jak ukládat správce toolchain do mezipamětimise, asdf nebo proto přeinstalujte jazykové moduly runtime při každém spuštění.Jak ukládat balíčky NuGet do mezipamětidotnet restore stahuje stejné balíčky při každém spuštění.Jak ukládat do mezipaměti transformace JestJest znovu transformuje každý soubor při každém spuštění.Jak ukládat do mezipaměti balíčky vcpkg a ConanSprávci závislostí C++ znovu sestavují balíčky ze zdroje při každém spuštění.Jak ukládat Xcode DerivedData do mezipamětiXcode přestaví celý projekt při každém spuštění CI.Výběr backendu mezipaměti buildxExistují čtyři backendy mezipaměti a není jasné, který použít.Jak udržovat mezipaměť základní větve v tepleVětve nových funkcí vždy začínají chladnou mezipamětí.

Měřítko28

Jak škálovat samostatně hostované běžceSamoobslužní běžci buď stojí ve frontě na špičce, nebo sedí nečinně a draze.Jak používat běžecké skupinyJakékoli úložiště může naplánovat úlohy pro libovolného běžce.Jak navrhnout strategii značení běžcůŠtítky rostly organicky a nikdo neví, které použít.Hosted nebo BYOC: jak si vybratNejste si jisti, zda použít hostované běžce nebo nasadit do vlastního cloudu.Jak používat opakovaně použitelné pracovní postupy ve velkém měřítkuPadesát úložišť má padesát mírně odlišných kopií stejného potrubí.Jak koordinovat pracovní postupy napříč repozitářiZměna v jednom úložišti musí spustit sestavení v dalších.Jak vytvořit vlastní obrázky běžcůKaždá úloha stráví minuty instalací stejných nástrojů.Jak bezpečně zavést aktualizace základního obrazuAktualizace základního obrazu přeruší sestavení napříč mnoha repozitáři najednou.Jak zvládnout zatížení CI závislých botůDependabot otevře třicet žádostí o stažení a zvýší náklady na CI.Jak pracovat s limity souběžnostiFronta úloh a není jasné, který limit je závazný.Jak efektivně využívat kontejnerové úlohyKontejnerové úlohy poskytují reprodukovatelnost, ale přerušují ukládání do mezipaměti.Jak správně používat servisní kontejneryTesty při spuštění občas selhávají.Jak postavit jednou a nasadit mnohokrátStejný artefakt je přestavěn pro každé prostředí.Jak strukturovat úlohy nasazeníNasazení jsou pomalé, riskantní a obtížně kontrolovatelné.Jak efektivně spouštět prostředí náhleduKaždý požadavek na stažení čeká na úplné sestavení prostředí.Jak strukturovat sestavení vydáníSestavení verzí je pomalé a občas nereprodukovatelné.Jak publikovat artefakty sestaveníNáklady na ukládání artefaktů rostou a uchovávání nebylo nikdy nakonfigurováno.Jak zvládnout nahrávání velkých artefaktůNahrání výstupu sestavení trvá několik minut.Jak získat přírůstkové sestavení v CICI vždy provádí čisté sestavení, i když váš systém sestavení podporuje přírůstkovou kompilaci.Jak předávat data mezi úlohamiÚlohy potřebují sdílet výstup sestavení a není jasné, jak.Jak dobře používat matrix buildyMatrix se rozrostl a nikdo si nepamatuje, proč jednotlivé kombinace existují.Jak ovládat výbuch matriceMalá změna matice ztrojnásobila počet prací a účet.Jak nastavit velikost běžců pro sestavení JavaHádáte velikost běžce pro sestavení Maven nebo Gradle.Jak nastavit velikost běžců pro testovací sady NodePracovníci Jest nebo Vitest buď hladoví nebo mlátí a vy si nejste jisti, které.Jak nastavit velikost běžců pro testovací sady Pythonupytest běží na jednom jádru, zatímco běžec má osm nečinných.Jak dimenzovat běžce pro stavby RustCargo staví měřítko s jádry, ale není jasné, jak daleko to jde.Jak dimenzovat běžce pro sestavení DockerVybíráte velikost nosiče pro sestavení obrázku.Jak nastavit velikost běžců pro sestavení AndroidSestavy spádových zařízení a testy přístrojů vyžadují velmi odlišné stroje.