Siirry sisältöön

runnerhut

Oppaat

Ratkaisuja CI-ongelmiin, joita tiimit oikeasti kohtaavat.

Nopeus13

GitHub ActionsPutkisi kestää kauemmin kuin kukaan haluaa odottaa, eikä ole selvää, mihin aika menee.Kuinka löytää työnkulun hidas vaiheValmistusprosessi on hidas, mutta jokainen yksittäinen askel näyttää järkevältä.GitHub Actions -kylmäkäynnistysten vähentäminenTyöt ovat paikallaan 30–90 sekuntia ennen kuin ensimmäinen vaihe suoritetaan.GitHub Actions -jonoaikojen diagnosointiTyöt ovat jonossa minuutteja ennen kuin juoksija poimii ne.Kuinka nopeuttaa kassan suorittamistatoiminnot/kirjautuminen kestää minuutteja suuressa arkistossa.Kuinka käyttää CI:tä erittäin suuressa arkistossaCheckout, indeksointi ja tilaraportointi heikkenevät arkiston kasvaessa.Kuinka nopeuttaa Git LFS -maksujaLFS-objektit latautuvat sarjassa ja hallitsevat kassaaikaa.Kuinka poistaa joutoaika työpaikoistaTyöpaikat viettävät aikaa tekemättä mitään – odottamalla palvelua, nukkumaanmenoa tai äänestyssilmukkaa.Kuinka käsitellä pitkäaikaisia ​​töitäJotkut työt jatkuvat tuntikausia ja ylittävät toisinaan kuuden tunnin rajan.Kuinka ajaa iltaisia rakennuksia tehokkaastiYötyöt ovat kalliita, eikä kukaan lue tuloksia.Kuinka pysäyttää CI-rerun myrskytKehittäjät suorittavat epäonnistuneita töitä toistuvasti, moninkertaistavat kustannukset ja piilottavat todelliset epäonnistumiset.Kuinka sirpata testit matriisin yliYksi pitkä testityö hallitsee putkilinjaa.Kuinka suorittaa vain muutokset, joihin muutos vaikuttaaJokainen painallus suorittaa koko testisarjan riippumatta siitä, mikä on muuttunut.

Kustannukset13

GitHub Actions -kulujen vähentäminenCI-lasku kasvaa nopeammin kuin joukkue, eikä kukaan ole varma miksi.Kuinka mitata CI-hinta vetopyyntöä kohtiTiedät kuukausittaisen kokonaissumman, mutta et mitä yksittäinen vetopyyntö maksaa.Kuinka jakaa CI-kustannukset joukkueilleCI-kulutus on yksi rivi laskussa, eikä mikään tiimi ole vastuussa siitä.Kuinka asettaa CI-minuuttibudjettiKulutus havaitaan kuun lopussa sen sijaan, että sitä hallittaisiin sen aikana.Kun isommat juoksijat todella säästävät rahaaIsompi juoksija maksaa enemmän minuutilta, joten on epäselvää, onko se kokonaisuutena halvempi.Kuinka leikata macOS-käyttökustannuksiamacOS hallitsee CI-laskua.Kuinka vähentää CI-lähtökustannuksiaTiedonsiirto on suuri ja kasvava osuus BYOC-laskusta.Kuinka vähentää ECR-vedon kustannuksiaSäiliön kuvavedot aiheuttavat merkittäviä tiedonsiirtokuluja.Kuinka vähentää S3-siirtokustannuksia CI:ssäVälimuisti- ja artefaktiliikenne S3:lle on kallista.Itseisännöityjen juoksijoiden todelliset kustannuksetItseisännöidyt juoksijat näyttävät ilmaisilta minuuttilaskutuksen lisäksi.Kuinka käyttää spot-esiintymiä CI-juoksissaOn-demand-esiintymät ovat kalliita työkuormille, jotka ovat luonnostaan uudelleen kokeiltavissa.Kuinka mitoittaa juoksijasi oikeaan kokoonJuoksijoiden koot valittiin kerran, eikä niitä koskaan tarkistettu.Kuinka käyttää CI:tä taloudellisesti avoimessa lähdekoodissaAvoimen lähdekoodin CI on ilmainen GitHub-isännöidyille käyttäjille, mutta hidas, ja itseisännöinti ei ole turvallista.

Välimuisti16

Kuinka saada CI-välimuistit todella säilymäänVälimuistit on määritetty, mutta osumaprosentti on alhainen.Kuinka kiertää 10 Gt:n välimuistirajaVälimuistisi ylittävät 10 Gt arkistoa kohden ja alat häätää hiljaa.Rakennusvälimuistin jakaminen arkistojen keskenJokainen arkisto ylläpitää omaa välimuistiaan samoille jaetuille riippuvuuksille.Docker-välimuistin jakaminen töiden välilläJokainen matriisijalka rakentaa uudelleen samat kerrokset.Docker-välimuistin mitätöinnin korjaaminenDocker-tasot rakennetaan uudelleen, vaikka asiaankuuluvat tiedostot eivät muuttuisi.Kuinka kirjoittaa välimuistiavain, joka osuuVälimuisti on määritetty, mutta se puuttuu joka ajon aikana.Kuinka käyttää välimuistia GitHub ActionsC- ja C++-koontiversiot kääntävät kaiken uudelleen joka ajon aikana.Kuinka käyttää sccachea Rust-rakennuksiinCargo rakentaa uudelleen riippuvuudet aina, kun kohdehakemiston välimuisti puuttuu.Gradlen määritysvälimuistin käyttöönottoGradle käyttää 30–60 sekuntia asetusten tekemiseen ennen kuin kääntää mitään.Kuinka välimuistiin tallennetaan työkaluketjujen hallintalaitteetmise, asdf tai proto asenna kielen ajonajat uudelleen joka ajon aikana.NuGet-pakettien tallentaminen välimuistiindotnet return lataa samat paketit joka ajon aikana.Kuinka tallentaa Jest-muunnokset välimuistiinJest muuttaa jokaisen tiedoston uudelleen joka ajon aikana.Kuinka tallentaa vcpkg- ja Conan-paketteja välimuistiinC++-riippuvuuden hallintaohjelmat rakentavat paketit uudelleen lähteestä joka ajon aikana.Kuinka välimuistiin tallennetaan Xcode DerivedDataXcode rakentaa koko projektin uudelleen jokaisella CI-ajolla.Buildx-välimuistin taustaohjelman valitseminenVälimuistitaustaohjelmia on neljä, ja on epäselvää, mitä käyttää.Kuinka pitää perushaaran välimuisti lämpimänäUudet ominaisuushaarat alkavat aina kylmällä välimuistilla.

Mittakaava28

Kuinka skaalata itse isännöityjä juoksijoitaItseisännöidyt juoksijat joko jonottavat ruuhkassa tai istuvat toimettomana ja kalliita.Kuinka käyttää juoksijaryhmiäMikä tahansa arkisto voi ajoittaa töitä mille tahansa juoksijalle.Kuinka suunnitella juoksijamerkkistrategiaTarrat kasvoivat orgaanisesti, eikä kukaan tiedä mitä käyttää.Isännöi tai BYOC: kuinka valitaEt ole varma, käytätkö isännöityjä juoksijoita vai otatko ne käyttöön omassa pilvessäsi.Kuinka käyttää uudelleenkäytettäviä työnkulkuja mittakaavassaViidelläkymmenellä arkistolla on viisikymmentä hieman erilaista kopiota samasta liukuhihnasta.Kuinka koordinoida työnkulkuja arkistoissaMuutoksen yhdessä arkistossa täytyy käynnistää koonnoksia muissa.Kuinka luoda mukautettuja juoksijakuviaJokainen työ vie minuutteja samojen työkalujen asentamiseen.Peruskuvapäivitysten käyttöönotto turvallisestiPeruskuvapäivityskatkot koottavat useat arkistot kerralla.Kuinka käsitellä riippuvuusbotin CI-kuormaaDependabot avaa kolmekymmentä vetopyyntöä ja CI-kustannuspiikkejä.Kuinka työskennellä samanaikaisuusrajojen kanssaTyöjono ja ei ole selvää, mikä raja on sitova.Kuinka käyttää konttitöitä tehokkaastiSäilötyöt antavat toistettavuuden, mutta rikkovat välimuistin.Kuinka käyttää palvelusäiliöitä oikeinTestit epäonnistuvat ajoittain käynnistyksen yhteydessä.Kuinka rakentaa kerran ja ottaa käyttöön monta kertaaSama esine rakennetaan uudelleen jokaiseen ympäristöön.Kuinka rakentaa käyttöönottotyötKäyttöönotot ovat hitaita, riskialttiita ja vaikeita tarkastaa.Kuinka käyttää esikatseluympäristöjä tehokkaastiJokainen vetopyyntö odottaa täyttä ympäristön rakentamista.Kuinka jäsentää julkaisuversioitaJulkaisujen koontiversiot ovat hitaita eivätkä toisinaan toistettavissa.Kuinka julkaista rakentamisen artefaktejaArtefakttien säilytyskustannukset kasvavat, eikä säilytystä koskaan määritetty.Kuinka käsitellä suuria artefaktilatauksiaRakennustulosteen lataaminen kestää minuutteja.Kuinka saada inkrementaalisia koonnoksia CI:ssäCI tekee aina puhtaan koontiversion, vaikka koontijärjestelmäsi tukee inkrementaalista kääntämistä.Kuinka siirtää tietoja töiden välilläTyöpaikkojen on jaettava rakennustuotanto, ja on epäselvää, miten.Kuinka käyttää matriisirakennelmia hyvinMatriisi on kasvanut, eikä kukaan muista, miksi kukin yhdistelmä on olemassa.Kuinka hallita matriisin räjähdystäPieni matriisin muutos kolminkertaisti työmäärän ja laskun.Kuinka mitoittaa runners Java-koontiversioita vartenArvaat juoksukokoa Maven- tai Gradle-rakenteelle.Node-testipakettien juoksujen koon mitoitusJestin tai Vitestin työntekijät näkevät nälkää tai puskevat, etkä ole varma kumpi.Kuinka mitoittaa juoksijat Python-testiohjelmia vartenpytest toimii yhdellä ytimellä, kun juoksijalla on kahdeksan tyhjäkäyntiä.Kuinka mitoittaa juoksut Rust-rakenteisiinCargo rakentaa mittakaavassa ytimiä, mutta on epäselvää, kuinka pitkälle se menee.Kuinka mitoittaa juoksut Docker-rakenteisiinValitset juoksukoon kuvien rakentamiseen.Kuinka mitoittaa juoksijat Android-koontiversioilleGradle-kokoonpanot ja instrumentointitestit vaativat hyvin erilaisia ​​koneita.