mirror of
https://github.com/UiO-Gaming/drift.git
synced 2026-11-05 13:56:46 +01:00
Add vedtekter target to deploy script
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
d8aadb93c8
commit
166d292622
2 files changed
+26
-5
No files matched your search
+23
-1
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user