Dependency-opdateringer
update-dependencies er en valgfri custom pipeline i begge templates. Den opdaterer NuGet, npm og understøttede CDN-referencer og samler ændringerne i én PR. PR-pipelinen står for den efterfølgende validering.
Før første kørsel
Sektion kaldt “Før første kørsel”Kontrollér følgende:
BITBUCKET_API_TOKENer oprettet som sikret repository-variabel og kan både læse og skrive PRs.- Pipeline-jobbet kan pushe opdateringsbranchen til repositoryet.
SOLUTION_ROOT_DIRpeger på en mappe med en.slneller.slnx.WEB_PROJECT_DIRfindes, hvis den er angivet.- Arbejdstræet er rent ved starten af opdateringen. Runtime-mapperne skal være gitignored.
Preflight kontrollerer desuden, at CI-imaget har de nødvendige værktøjer, herunder curl, Git, .NET, Node, npm, npx og tar. Reviewer-tildeling bruger jq.
Start pipelinen på main via Run pipeline > update-dependencies. Den kan også indgå i scheduled-maintenance.
Styr opdateringspolitikken
Sektion kaldt “Styr opdateringspolitikken”Opret eventuelt devops/dependency-updates.json. Uden pakkespecifikke regler er standarden stabile minor- og patch-opdateringer inden for den nuværende major-version. Prereleases vælges ikke.
{ "$schema": "https://ecreociscripts.blob.core.windows.net/ci-scripts/dependency-updates.schema.json", "nuget": { "packages": { "Umbraco.Cms": { "allowedUpdates": "patch" } } }, "npm": { "packages": { "swiper": { "allowedUpdates": "patch" }, "alpinejs": { "allowedUpdates": "minor" }, "legacy-package": { "allowedUpdates": "none" } } }, "cdnjs": { "packages": { "tiny-slider": { "allowedUpdates": "patch" } } }}Pakkenavnene er eksempler. Brug navnene fra projektets egne pakker.
allowedUpdates |
Tilladte ændringer |
|---|---|
minor |
Minor og patch inden for nuværende major. Standard |
patch |
Patch inden for nuværende minor |
none |
Ingen automatisk ændring. For CDN gælder det også versionspinning og skift af udbyder |
Schemaet er tilgængeligt som Ecreos dependency-update-schema. Det beskriver også includePaths og excludePaths under de enkelte økosystemer.
Hvad kører pipelinen?
Sektion kaldt “Hvad kører pipelinen?”| Script | Opgave |
|---|---|
100_preflight.sh |
Kontrollerer værktøjer, konfiguration, rent arbejdstræ og API-adgang |
200_update-nuget.sh |
Opdaterer NuGet-afhængigheder |
300_update-npm.sh |
Opdaterer npm-afhængigheder |
400_enforce-policy.sh |
Håndhæver projektets opdateringsregler |
500_update-cdn.sh |
Opdaterer understøttede CDN-referencer |
600_create-pr.sh |
Opretter eller opdaterer branch og PR |
Projekter med et ældre lokalt override af 500_create-pr.sh skal tilpasses til 600_create-pr.sh.
Branch og PR
Sektion kaldt “Branch og PR”Første opdatering opretter en branch med præfikset ecreo/dependency-updates- og en PR. Senere kørsler opdaterer den eksisterende åbne PR og dens genererede commit og beskrivelse.
Branchopdateringen bruger en force-with-lease-kontrol og stopper, hvis branchen indeholder manuelle commits. Lav derfor ikke manuelle rettelser direkte på automationsbranchen, hvis den fortsat skal kunne opdateres automatisk. Ekstra genererede commits, som kun opdaterer bitbucket-pipelines.yml med den normale pipeline-opdateringsbesked, er understøttet.
PR-beskrivelsen viser ændrede pakker. For npm vises direkte afhængigheder fra package.json; transitive ændringer fra package-lock.json får ikke hver sin række. Ved CDN-skift af udbyder vises gammel og ny URL. En eventuel pipeline-template-opdatering har sin egen sektion.
Ved højst to forskellige opdateringer kan commit-beskeden indeholde pakkenavne og målversioner, hvis hele emnelinjen kan holdes på højst 100 tegn. Ellers bruges en samlet besked med de berørte økosystemer. JIRA_KEY bruges som prefix, når den er udfyldt.
Reviewers tildeles efter reglerne i Variabler og miljøer. Eksisterende PRs uden reviewers kan få dem tilføjet, selv om der ikke er nye pakkeændringer.
Gennemgå opdateringen
Sektion kaldt “Gennemgå opdateringen”Læs PR-beskrivelsen og diffen, kontrollér valideringen, og afprøv de berørte dele af applikationen før merge. Major-opdateringer kræver særskilt håndtering. CDN-opdateringens begrænsninger er beskrevet i CDN-opdateringer.