Opprette nytt modulrepo – steg-for-steg
Fullstendig veiledning for å opprette et nytt Hugo-modulrepo fra bunnen og koble det til SAMT-BU Docs – fra tomt GitHub-repo til publisert innhold under /teams/<repo-navn>/ (eller annen valgfri sti).
Prosessen krever endringer i to repoer: selve modulrepoet og samt-bu-docs.
Forutsetninger
- Tilgang til GitHub-org
samt-x(eller aktuell org) - Hugo installert lokalt
ghCLI autentisert- PAT med
workflow-scope (samme token som brukes iDOCS_REBUILD_TOKENi eksisterende repoer)
Del 1 – Sett opp modulrepoet
Steg 1 – Opprett repo på GitHub
Opprett et nytt tomt repo under samt-x-orgen (eller aktuell org). Legg til en enkel README.md så repoet ikke er helt tomt.
Navnekonvensjon:
team--prefiks for interne arbeidsrepoer for teamsamt-bu--prefiks for publisert innhold/produkt
Steg 2 – Klon repoet lokalt
cd "S:/app-data/github/samt-x-repos"
git clone https://github.com/samt-x/<repo-navn>.git
cd <repo-navn>
Steg 3 – Initialiser som Hugo-modul
hugo mod init github.com/SAMT-X/<repo-navn>
Dette oppretter go.mod i rotmappen.
Steg 4 – Opprett innholdsfiler
mkdir content
Opprett content/_index.nb.md:
---
title: "<Tittel på norsk>"
linkTitle: "<Kort tittel>"
weight: 30
status: ""
draft: false
---
Kort beskrivelse av innholdet i dette repoet.
Opprett content/_index.en.md:
---
title: "<Title in English>"
linkTitle: "<Short title>"
weight: 10
status: ""
draft: false
---
Short description of the content in this repo.
Merk: id-feltet (UUID) skal ikke settes manuelt – det legges til automatisk av ensure-uuids.py i CI ved første push.
Steg 5 – Legg til ensure-uuids.py
Kopier skriptet fra et eksisterende modulrepo:
mkdir -p .github/scripts
cp ../team-architecture/.github/scripts/ensure-uuids.py .github/scripts/
Steg 6 – Legg til trigger-docs-rebuild.yml
Opprett .github/workflows/trigger-docs-rebuild.yml:
name: Trigger rebuild av samt-bu-docs
on:
push:
branches: [main]
permissions:
contents: write
jobs:
trigger:
if: github.actor != 'github-actions[bot]'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Sikre UUID-er i frontmatter
run: |
python3 .github/scripts/ensure-uuids.py
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add content/
if git diff --staged --quiet; then
echo "Ingen endringer – alle UUID-er var på plass"
else
git commit -m "Auto: legg til manglende UUID-er i frontmatter [skip ci]"
for i in 1 2 3; do
git pull --rebase origin main && git push && break
sleep 3
done
fi
- name: Send repository_dispatch til samt-bu-docs
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.DOCS_REBUILD_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/SAMT-X/samt-bu-docs/dispatches \
-d '{"event_type":"module-updated","client_payload":{"source":"<repo-navn>"}}'
Husk å bytte ut <repo-navn> med faktisk reponavn i siste linje.
Steg 7 – Commit og push modulrepoet
git add go.mod content/ .github/
git commit -m "Hugo-modul init: <repo-navn> med innholdssider (nb+en)"
git push
Steg 8 – Legg til DOCS_REBUILD_TOKEN secret
"/c/Program Files/GitHub CLI/gh.exe" secret set DOCS_REBUILD_TOKEN --repo SAMT-X/<repo-navn>
# Lim inn PAT-verdien (samme som i de andre modulrepoene) når du blir bedt om det
Del 2 – Koble modulen til samt-bu-docs
Alle disse endringene gjøres i S:/app-data/github/samt-x-repos/samt-bu-docs/.
Steg 9 – Legg til modulen i hugo.toml
Legg til en ny blokk under [module]:
[[module.imports]]
path = "github.com/SAMT-X/<repo-navn>"
[[module.imports.mounts]]
source = "content"
target = "content/teams/<repo-navn>"
Juster target til ønsket sti i nettstedet (f.eks. content/teams/<repo-navn>/ for team-repoer).
Steg 10 – Oppdater go.mod/go.sum
cd "S:/app-data/github/samt-x-repos/samt-bu-docs"
GONOSUMDB=* GOPROXY=direct hugo mod get github.com/SAMT-X/<repo-navn>@latest
Steg 11 – Legg til checkout-steg i hugo.yml
I .github/workflows/hugo.yml, legg til en ny checkout-blokk etter de eksisterende modulrepo-checkout-stegene:
- name: Checkout <repo-navn> module
uses: actions/checkout@v4
with:
repository: SAMT-X/<repo-navn>
path: .hugo-modules/<repo-navn>
fetch-depth: 0
Steg 12 – Legg til i HUGO_MODULE_REPLACEMENTS
I samme fil, under HUGO_MODULE_REPLACEMENTS, legg til på slutten (husk komma etter forrige linje):
github.com/SAMT-X/<repo-navn> ->
${{ github.workspace }}/.hugo-modules/<repo-navn>
Steg 13 – Legg til i inject-lastmod.py
I .github/scripts/inject-lastmod.py, legg til stien i MODULE_PATHS-listen:
'.hugo-modules/<repo-navn>',
Steg 14 – Verifiser lokalt og push
hugo # Sjekk at det bygger uten feil
git add hugo.toml go.mod go.sum .github/workflows/hugo.yml .github/scripts/inject-lastmod.py
git commit -m "Ny Hugo-modul: <repo-navn> montert under teams/<repo-navn>"
git push
Resultat
Etter neste CI-bygg vil innholdet fra modulrepoet være tilgjengelig på nettstedet. Videre push til modulrepoet vil automatisk trigge nybygg via repository_dispatch.
For å verifisere at alt er koblet riktig:
- Gå til
https://github.com/SAMT-X/samt-bu-docs/actions– se at et bygg startes - Åpne nettstedet og naviger til den nye seksjonen
- Gjør en testendring i modulrepoet og sjekk at nettstedet oppdateres automatisk (~2 min)