Azure DevOps
Cache

Rensa cache i Azure DevOps

Azure DevOps är en omfattande plattform från Microsoft som används för att hantera hela utvecklingslivscykeln, från planering och utveckling till leverans och drift. Plattformen inkluderar verktyg för källkodshantering, kontinuerlig integration och leverans (CI/CD), testning och övervakning. Precis som många andra moderna utvecklingsplattformar använder Azure DevOps cachemekanismer för att optimera prestanda och förbättra utvecklingsflödet. Ibland kan det dock bli nödvändigt att rensa cachen, till exempel för att lösa problem med byggningar, pipelines eller för att se till att uppdaterade beroenden används. Denna guide beskriver hur du rensar cache i Azure DevOps för att säkerställa att din utvecklingsmiljö fungerar smidigt.

Varför rensa cache i Azure DevOps?

Att rensa cache i Azure DevOps kan vara nödvändigt av flera olika skäl:

  1. Uppdaterade beroenden: Om du har uppdaterat beroenden i ditt projekt men de gamla versionerna fortsätter att användas, kan rensning av cachen vara nödvändig för att pipelines ska hämta och använda de senaste versionerna.
  2. Felsökning av pipelines: Om byggningar eller distributioner misslyckas utan tydlig anledning, kan cacheproblem vara orsaken. Att rensa cachen kan lösa dessa problem och säkerställa att pipelinen fungerar som den ska.
  3. Prestandaförbättring: Över tid kan cachen fyllas med data som inte längre är relevant, vilket kan leda till ineffektiv hantering av byggningar och pipeliner. Rensning av cachen kan hjälpa till att förbättra prestandan.

Steg 1: Förstå cachetyper i Azure DevOps

Innan du rensar cachen är det viktigt att förstå de olika typerna av cache som Azure DevOps använder:

  1. Pipeline cache: Detta är den vanligaste typen av cache i Azure DevOps, och den används för att spara byggnadsartefakter och beroenden mellan pipeline-körningar. Detta hjälper till att snabba upp efterföljande byggningar genom att återanvända tidigare hämtade eller skapade filer.
  2. NuGet-cache: Används specifikt för att cacha NuGet-paket i pipelines som använder .NET. Att rensa denna cache kan vara nödvändigt om nya paketversioner har släppts men de gamla versionerna fortfarande används.
  3. NPM-cache: Liknande NuGet-cachen, men används för NPM-paket i Node.js-projekt. Att rensa denna cache säkerställer att de senaste versionerna av NPM-paketen används i byggningen.

Steg 2: Rensa pipeline cache via YAML-fil

För att rensa pipeline-cachen i Azure DevOps kan du använda YAML-konfigurationen för dina pipelines. Detta är särskilt användbart när du vill rensa specifika cacheposter eller kontrollera cachehanteringen direkt från din pipeline-definition.

  1. Lägg till ett @clear-suffix till din cache-tagg:
    • Om du använder YAML-filer för att definiera dina pipelines, kan du rensa cachen genom att lägga till ett @clear-suffix till den cache-tagg du använder.

Exempel:

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json@clear'
    path: '$(Pipeline.Workspace)/.npm'
    cacheHitVar: 'CACHE_RESTORED'
    • Genom att lägga till @clear säkerställer du att cachen för den specifika nyckeln rensas vid den körningen.
  1. Kör pipelinen:
    • När du har lagt till @clear-suffixet, spara och kör pipelinen. Detta kommer att rensa den specificerade cachen och skapa en ny under pipelinens gång.

Steg 3: Rensa cache manuellt via Azure DevOps-portalen

Om du föredrar att rensa cachen manuellt kan du göra detta via Azure DevOps-portalen. Detta är användbart om du snabbt vill rensa cachen utan att behöva ändra YAML-konfigurationen.

  1. Gå till din pipeline:
    • Logga in på Azure DevOps-portalen och navigera till ditt projekt.
    • Gå till Pipelines och välj den pipeline du vill arbeta med.
  2. Navigera till cache-inställningarna:
    • I pipelinens detaljsida, klicka på Edit för att komma åt pipeline-konfigurationen.
    • Om du använder ett grafiskt gränssnitt, leta efter den Cache-uppgift som används i pipelinen och välj den.
  3. Rensa cache:
    • I vissa fall kan du manuellt rensa cachen direkt från uppgiftens inställningar genom att välja ett alternativ för att inte använda cache eller genom att ändra cache-tagg.
    • Om det inte finns något specifikt alternativ för att rensa cachen, överväg att tillfälligt ta bort cache-uppgiften och köra pipelinen utan cache för att säkerställa att all cachedata rensas.

Steg 4: Rensa NuGet- och NPM-cache

NuGet- och NPM-cachar används ofta i .NET- och Node.js-projekt och kan ibland behöva rensas för att se till att de senaste paketversionerna används.

  1. NuGet-cache:
    • Lägg till en steg i din pipeline för att rensa NuGet-cachen:
- script: |
    nuget locals all -clear
  displayName: 'Clear NuGet cache'
    • Detta kommando rensar alla NuGet-cacher som används av pipelinen, vilket säkerställer att nya paketversioner hämtas vid nästa körning.
  1. NPM-cache:
    • Lägg till följande steg i din pipeline för att rensa NPM-cachen:
- script: |
    npm cache clean --force
  displayName: 'Clear NPM cache'
    • Detta kommando rensar NPM-cachen, vilket tvingar pipelinen att hämta nya versioner av NPM-paket vid nästa körning.

Steg 5: Verifiera att cachen har rensats

Efter att ha rensat cachen är det viktigt att verifiera att pipelinen fungerar korrekt och att de uppdaterade beroendena används.

  1. Kör pipelinen:
    • Efter att ha rensat cachen, kör pipelinen igen för att säkerställa att nya paket och beroenden hämtas och att eventuella problem är lösta.
  2. Granska pipelineloggar:
    • Gå igenom loggarna för pipelinen för att verifiera att cachen har rensats och att byggningen har hämtat de senaste beroendena från externa källor.

Tips och tricks för cachehantering i Azure DevOps

För att effektivt hantera cachen i Azure DevOps och undvika frekvent cache-rensning, överväg följande tips:

  1. Använd specifika cache-tagg: Använd unika och specifika cache-tagg för varje projekt eller pipeline för att undvika konflikter och säkerställa att rätt cachedata används.
  2. Regelbunden cacheunderhåll: Planera regelbundna intervall för cache-rensning i dina pipelines, särskilt om du ofta uppdaterar dina beroenden.
  3. Övervaka cacheprestanda: Håll ett öga på hur cachning påverkar prestandan i dina pipelines och justera cacheinställningarna baserat på de specifika behoven i ditt projekt.

Sammanfattning

Att rensa cachen i Azure DevOps kan vara en nödvändig åtgärd för att lösa problem med byggningar, pipelines och beroendehantering. Genom att följa stegen ovan kan du säkert rensa pipeline-cache, NuGet-cache och NPM-cache, vilket hjälper till att säkerställa att dina pipelines körs smidigt och använder de senaste versionerna av dina beroenden. Genom att regelbundet underhålla cachen och följa bästa praxis kan du optimera prestandan i dina Azure DevOps-pipelines och minimera behovet av frekvent cache-rensning.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *