Add vedtekter target to deploy script

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
leanderandClaude Opus 5.5 committed 2026-11-02 23:48:30 +01:00
1 parent d8aadb93c8
commit 166d292622
2 files changed
+26 -5

No files matched your search

+23 -1
View File
@@ -7,7 +7,8 @@
#
# The workflow runs `ssh github_deploy@uiogaming.no <service>`. SSH puts <service> in
# SSH_ORIGINAL_COMMAND. The script updates that repo to origin/main and rebuilds the service
# from the top-level docker-compose.yml, which owns all the containers.
# from the top-level docker-compose.yml, which owns all the containers. The vedtekter target has
# no container: it copies the current statutes from the dokumenter repo to the folder nginx serves.
set -euo pipefail
ROOT=/srv/uiogaming
@@ -20,8 +21,11 @@ declare -A REPO=(
[mustafa]=mustafa
[name100]=name-100-uio-gamers
[uiogaming.no]=uiogaming.no
[vedtekter]=dokumenter
)
STATUTES_DIR=/var/www/uiogaming.no/vedtekter
svc=${SSH_ORIGINAL_COMMAND:-}
if [[ ! $svc =~ ^[a-z0-9.-]+$ || -z ${REPO[$svc]:-} ]]; then
echo "Usage: ssh github_deploy@uiogaming.no <service>" >&2
@@ -36,6 +40,24 @@ git -C "$repo" fetch --quiet origin "$BRANCH"
git -C "$repo" reset --hard "origin/$BRANCH"
echo "==> Now at $(git -C "$repo" log -1 --format='%h %s')"
if [[ $svc == vedtekter ]]; then
# nginx serves these two fixed names. Copy to a temporary file first so the swap is atomic
src="$repo/styrende dokumenter/vedtekter/gjeldende"
for pair in "vedtekter:Vedtekter UiO Gaming" "statutes:Statutes UiO Gaming"; do
name=${pair%%:*}
matches=("$src/${pair#*:} ("*" - ).pdf")
if [[ ${#matches[@]} -ne 1 || ! -f ${matches[0]} ]]; then
echo "Expected exactly one current PDF for ${pair#*:} in $src" >&2
exit 1
fi
install -m 644 "${matches[0]}" "$STATUTES_DIR/.$name.pdf.tmp"
mv -f "$STATUTES_DIR/.$name.pdf.tmp" "$STATUTES_DIR/$name.pdf"
echo "==> Published $(basename "${matches[0]}") as $name.pdf"
done
echo "==> Done"
exit 0
fi
cd "$ROOT"
docker compose up -d --build "$svc"
+3 -4
View File
@@ -281,6 +281,7 @@ I skrivende stund fungerer dette for følgende tjenester:
- [Mustafa](#mustafa---discord-bot)
- [Mustaboard](#mustaboard)
- [name-100-uio-gamers](#name-100-uio-gamers)
- [Vedtekter](#oppdatere-vedtekter) (ingen container, les mer ved å trykke på lenken)
## Secrets og variabler
@@ -400,11 +401,9 @@ Kan være lurt å børste støv av maskinen en gang i blant :) (både inni og ut
Vedtektsdokumentene er laget med LaTeX og finnes [her](https://github.com/UiO-Gaming/dokumenter/tree/main/styrende%20dokumenter/vedtekter). Jeg liker ikke helt filstrukturen her, men det er et forsøk på å skille mellom norsk og engelsk, samt hva som er gamle og gjeldende vedtekter.
Fordi jeg er veldig nøye på metadata, som ingen egentlig bryr seg om, så foretrekker jeg å gjøre denne prosessen på egenhånd. Så lenge filnavnene som legges ut på GitHub er konsekvente derimot så er jeg fornøyd. Husk også å bruke datoen til den relevante generalforsamlingen på både forsiden samt filnavnene.
Prosessen er automatisert. Oppdater LaTeX-kilden og datoen på forsiden (datoen til den relevante generalforsamlingen), og push til _main_. En GitHub Action arkiverer de gamle vedtektene, bygger nye PDF-er med riktig metadata og åpner en pull request. Se [README-en i dokumenter](https://github.com/UiO-Gaming/dokumenter/tree/main/styrende%20dokumenter/vedtekter) for detaljer.
Jeg hadde tenkt til å lage et script som automatiserer denne prosessen, men per d.d har ikke dette skjedd.
Vedtektsfilene som man finner på [vedtekter.uiogaming.no](https://vedtekter.uiogaming.no) og [statutes.uiogaming.no](https://statutes.uiogaming.no) ligger i `/var/www/uiogaming.no/vedtekter`. Merk at filene må hete `vedtekter.pdf` og `statutes.pdf` for å fungere.
Når pull requesten merges, kjører workflowen `publiser-vedtekter.yml` (`ssh github_deploy@uiogaming.no vedtekter`). Deploy-scriptet oppdaterer `/srv/uiogaming/dokumenter` og kopierer de gjeldende vedtektene til `/var/www/uiogaming.no/vedtekter`, der [vedtekter.uiogaming.no](https://vedtekter.uiogaming.no) og [statutes.uiogaming.no](https://statutes.uiogaming.no) henter dem. Filene må hete `vedtekter.pdf` og `statutes.pdf` for å fungere, og det ordner scriptet.
# Rutiner