Byggcachning och byggen endast för berörda projekt
Håll monorepots CI snabbt när det växer: använd uppgiftsgrafer, beräkningscachning och identifiering av berörda projekt för att bara bygga och testa det som ändrats.
Byggcachning och byggen endast för berörda projekt är en gratis lektion i Avancerad Git: monorepon, submoduler och arbetsflöden på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Avancerad Git: monorepon, submoduler och arbetsflöden, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Avancerad Git: monorepon, submoduler och arbetsflöden innehåller totalt 4 lektioner.
Skalningsväggen
När en monorepo växer blir det plågsamt långsamt att bygga om och testa allt vid varje commit.
Lösningen är att endast utföra det arbete som ändringen faktiskt kräver och att cacha resultat som inte har ändrats.
Projektets beroendegraf
Monorepo-verktyg bygger en graf över hur projekten är beroende av varandra. Grafen visar verktyget vilka projekt som ligger nedströms från en ändring.
nx graphIdentifiera berörda projekt
Genom att jämföra din branch med en bas-commit beräknar verktyget mängden berörda projekt — de som har ändrats samt allt som är beroende av dem.
nx affected --target=test --base=mainVarför endast berörda projekt
Om du ändrar ett bibliotek längst ut i grafen behöver bara det och dess användare byggas om — orelaterade appar påverkas inte. På stora repo:n kan detta minska CI-tiden från timmar till minuter.
Cachelagring av beräkningar
Verktyg hashar en uppgifts indata (källfiler, konfiguration och beroenden). Om hashen matchar en tidigare körning återanvänds det cachade resultatet i stället för att beräkningen görs om.
Vad som ingår i hashen
Cache-nyckeln kombinerar:
- Innehållet i källfilerna
- Det exakta kommandot och dess alternativ
- Beroendeversioner
- Relevanta miljövariabler
Alla ändringar av detta gör cacheposten ogiltig.
Lokal kontra fjärrcache
En lokal cache snabbar upp dina egna upprepade körningar. En fjärrcache delar resultat över hela teamet och CI, så att arbete som utförts en gång kommer alla till nytta.
nx run-many --target=build --allCacheträffar och cachemissar
En träff återanvänder lagrade resultat direkt; en miss kör uppgiften och lagrar resultatet. Verktygen rapporterar detta så att du kan se hur mycket tid som sparats.
Korrekt cachelagring
Cachelagring är bara säkert om uppgifterna är deterministiska och indata deklareras korrekt. Dold indata, som tidsstämplar och nätverksanrop, orsakar inaktuella eller felaktiga cacheträffar.
Koppla in det i CI
I CI kör du berörda mål mot merge-basen och aktiverar fjärrcachen. Varje pipeline utför då minsta möjliga arbete och återanvänder delade resultat.
nx affected --target=build,test,lint --base=origin/mainVerktygslandskapet
Populära verktyg tillhandahåller dessa funktioner: Nx och Turborepo för JS/TS, Bazel för polyglotta projekt i stor skala och Gradle/Pants för JVM. Koncepten är desamma för alla.
Snabbkontroll
Testa dina kunskaper om byggoptimering.
Sammanfattning
Du kan nu hålla CI för en monorepo snabbt även i stor skala:
- Använd projektets beroendegraf för att beräkna berört arbete
- Cacha uppgiftsresultat med hashad indata som nyckel
- Dela resultat via en fjärrcache mellan teamet och CI
- Håll uppgifterna deterministiska så att cachelagringen förblir korrekt
Detta bygger vidare på dina lektioner om beroendehantering och CI/CD-strategi.
Lär dig Avancerad Git: monorepon, submoduler och arbetsflöden med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Byggcachning och byggen endast för berörda projekt” gratis?
Ja – hela texten till ”Byggcachning och byggen endast för berörda projekt” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Avancerad Git: monorepon, submoduler och arbetsflöden, kan Ni uppgradera till CoddyKit PRO. Kursen i Avancerad Git: monorepon, submoduler och arbetsflöden innehåller totalt 4 lektioner.
Vad lär jag mig i ”Byggcachning och byggen endast för berörda projekt”?
Håll monorepots CI snabbt när det växer: använd uppgiftsgrafer, beräkningscachning och identifiering av berörda projekt för att bara bygga och testa det som ändrats. Ni övar på Avancerad Git: monorepon, submoduler och arbetsflöden med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Avancerad Git: monorepon, submoduler och arbetsflöden?
Du behöver inga förkunskaper. Utbildningen i Avancerad Git: monorepon, submoduler och arbetsflöden på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Byggcachning och byggen endast för berörda projekt”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Avancerad Git: monorepon, submoduler och arbetsflöden-lektionen?
Ja. Varje Avancerad Git: monorepon, submoduler och arbetsflöden-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Beroendehantering i monorepon
- Atomiska commits och ändringar mellan projekt
- CI/CD-strategier för monorepon
- Byggcachning och byggen endast för berörda projekt