Realisering av samtidige bygg gjennom Cloudflare Pages
⏺ Godkjent (sesjon 24, 2026-04-18): CF Pages Git-integrasjon er nå aktivt. Prosjekt
samt-bu-docs(subdomainsamt-bu-docs-git.pages.dev) bygger automatisk ved push. Deploy hook (CF_PAGES_DEPLOY_HOOK) håndterer moduloppdateringer. Gammelt prosjektsamt-bu-docs-old(samt-bu-docs.pages.dev) er fryst. SHA-basert polling i temaet gjenstår som fremtidig forbedring.
Bakgrunn og motivasjon
GitHub Pages avløser automatisk eldre bygg i kø når et nyere bygg med høyere prioritet venter («Canceling since a higher priority waiting request for pages exists»). Dette betyr at ved tre eller flere raske lagringer i sekvens vil kun det siste bygget fullføres – de mellomliggende avløses. Dette er GitHub Pages-spesifikk atferd, ikke et iboende problem med statiske nettsteder generelt.
GitLab-sammenligning: GitLab CI/CD har ikke denne avløsningsmekanismen. Med GitLab Pages hadde parallelle pipelines fungert uten ekstra infrastruktur, og Cloudflare Pages hadde sannsynligvis ikke vært nødvendig. Cloudflare Workers (OAuth-proxy) hadde likevel vært nødvendig, ettersom GitHub OAuth krever server-side
client_secretuansett plattform.
Cloudflare Pages native build med Git-integrasjon støtter opptil 6 samtidige bygg (Workers Paid-plan).
Hva som faktisk skjedde (sesjon 13, 2026-03-19)
Parallelle bygg fungerte. I commiten 0a5073f ble cancel-in-progress: false satt og SHA-basert CF check-run-deteksjon aktivert. Testsekvensen av «Endre side: Test 1/2/3…»-commits bekrefter at dette ble testet. Løsningen ble likevel reversert (8844517) tilbake til wrangler Direct Upload – uten at årsaken er dokumentert i commit-meldingen. Sannsynlig årsak: den infrastrukturelle blokkeringen (CF Git-integrasjon krever nytt prosjekt) ble for tidkrevende å fullføre der og da.
Viktig: SHA-basert polling (waitForCfCheckRun) virker ikke med wrangler – CF oppretter ingen check-runs ved Direct Upload. Reaktivering av parallelle bygg krever derfor at CF Pages Git-integrasjon er på plass.
Hva som er gjort (sesjon 13, 2026-03-19)
Alternativ B implementert ✅ (forutsetning for CF native build)
lastmod-injeksjon er flyttet inn i modulrepoene:
inject-lastmod.pyopprettet i alle 4 modulrepoer (team-architecture, samt-bu-drafts, solution-samt-bu-docs, team-pilot-1) under.github/scripts/trigger-docs-rebuild.ymli alle 4 modulrepoer oppdatert:fetch-depth: 0+ nytt inject-lastmod-steg som committer med[skip ci]- Bot-commits hoppes over ved bestemmelse av lastmod-timestamp (ny
get_lastmod-logikk) hugo.ymli samt-bu-docs forenklet: fjernet multi-repo-checkout, inject-lastmod ogHUGO_MODULE_REPLACEMENTS- Erstattet med
hugo mod get @latest+hugo mod tidyfor alle moduler – henter siste versjon inkl. injisert lastmod direkte fra Go-modulproxy build.shopprettet i samt-bu-docs-rot – klar til bruk av CF Pages native build
Delvis løst: cancel-in-progress ✅
concurrency: cancel-in-progress: false → true i hugo.yml. Løser køproblemet i praksis:
- 4 raske redigeringer → 3 avlyses, 1 bygger (alle endringer er med i det ene bygget)
- Testet og bekreftet: ~1 minutt byggetid (vesentlig raskere enn før)
- Gjelder alle brukere – bygg fra ulike GitHub-brukere kombineres på samme måte
Blokkert: CF Pages Git-integrasjon ❌
CF Pages støtter ikke å legge til Git-integrasjon på et eksisterende Direct Upload-prosjekt:
- Dashboard-siden
settings/builds-deploymentskrasjer med «Refresh the page to try again» for Direct Upload-prosjekter - CF API har ikke GitHub OAuth-kobling eksponert (
/pages/git/github/installations→ 404) - Build-config og env vars ble satt via API (✅), men Git-kobling krever nytt prosjekt
CF Pages-konfigurasjon satt via API ✅
Følgende er allerede konfigurert på det eksisterende samt-bu-docs-prosjektet:
- Build command:
bash build.sh - Output directory:
public - Env vars (production + preview):
HUGO_VERSION=0.155.3,HUGO_ENVIRONMENT=production,TZ=Europe/Oslo,GONOSUMDB=*,GOPROXY=direct
Gjenstående steg for fullt gjennomslag
Steg 1 – Opprett nytt CF Pages-prosjekt med Git-integrasjon
Kan gjøres parallelt med at eksisterende site fortsetter å virke på samt-bu-docs.pages.dev.
- Gå til CF Pages → Create application → Pages → Connect to Git
- Velg SAMT-X/samt-bu-docs, branch main
- Build command:
bash build.sh, output:public - Env vars:
HUGO_VERSION=0.155.3,HUGO_ENVIRONMENT=production,TZ=Europe/Oslo,GONOSUMDB=*,GOPROXY=direct - Aktiver «Include Git submodules»
- Gi midlertidig navn, f.eks.
samt-bu-docs-git
Steg 2 – Opprett deploy hook og legg til som GitHub secret
- CF Pages → samt-bu-docs-git → Settings → Deploy hooks → Create hook (
github-actions, branchmain) - Legg til URL som secret
CF_PAGES_DEPLOY_HOOKi SAMT-X/samt-bu-docs
Steg 3 – Oppdater hugo.yml
Endre trigger-cf-pages-jobben (repository_dispatch) til å bruke deploy hook i stedet for wrangler-deploy. Hele wrangler-deploy-steget kan fjernes fra build-jobben når CF native build er verifisert.
Steg 4 – Byt prosjektnavn
- Rename
samt-bu-docs→samt-bu-docs-old(eller slett) - Rename
samt-bu-docs-git→samt-bu-docs - Subdomainen
samt-bu-docs.pages.devfølger prosjektnavnet automatisk
Viktig avklaring: Workers Paid ≠ Direct Upload
Workers Paid-planens «6 concurrent build slots» gjelder kun CF-side native builds (Git-integrasjon). Direct Upload (wrangler pages deploy) bruker ikke disse slotene – builds skjer i GitHub Actions. Kjøp av Workers Paid har dermed ingen effekt på Direct Upload-flyten.
Relatert
samt-bu-docs/.github/workflows/hugo.yml– nåværende bygg- og deploy-flytsamt-bu-docs/build.sh– klar for CF native build- Veikart: Statusrapportering og bygg-køer
- Veikart: Falsk byggefeil ved timeout