build: Makefile für typische Operationen

This commit is contained in:
Lars Kruse 2023-05-01 17:33:11 +02:00
parent f0dfefa36e
commit 64d1a830d4
3 changed files with 60 additions and 2 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
build/
public/
resources/_gen
.hugo_build.lock

46
Makefile Normal file
View File

@ -0,0 +1,46 @@
BUILD_DIR ?= build
EXPORT_DIR ?= public
BUILD_STAMP_HUGO = $(BUILD_DIR)/.stamp-hugo
BUILD_STAMP_THEME = $(BUILD_DIR)/.stamp-theme
SOURCE_DIRS = content data resources static
THEME_DIR ?= themes/hugo-geekdoc
BUILD_DEPS = config.toml $(shell find $(wildcard $(SOURCE_DIRS)) -type f)
HUGO_OPTS ?= --destination=$(EXPORT_DIR)
UPLOAD_SSH_HOST = hosting.sao
UPLOAD_TARGET_DIRECTORY = /data/webserver/hilfe.systemausfall.org/public
.PHONY: help
help:
@echo "Mögliche Ziele:"
@echo " build - Webseite erzeugen"
@echo " build-theme - Theme-Assets erzeugen"
@echo " upload - erzeugte Webseite hochladen"
@echo
.PHONY: build
build: $(BUILD_STAMP_HUGO)
$(BUILD_STAMP_HUGO): $(BUILD_DEPS) $(BUILD_STAMP_THEME) Makefile
@HUGO_ENV=production hugo $(HUGO_OPTS)
@touch "$@"
.PHONY: build-theme
build-theme: $(BUILD_STAMP_THEME)
$(BUILD_STAMP_THEME):
cd "$(THEME_DIR)" \
&& npm install \
&& npm run build
touch "$@"
.PHONY: upload
upload: $(BUILD_STAMP_HUGO)
@rsync -ax --delete \
"$(EXPORT_DIR)/" \
"$(UPLOAD_SSH_HOST):$(UPLOAD_TARGET_DIRECTORY)/"
.PHONY: clean
clean:
$(RM) -r "$(BUILD_DIR)"

View File

@ -15,13 +15,24 @@ Die sind die systemausfall.org-[Hilfeseiten](https://hilfe.systemausfall.org).
- Erzeuge einen neuen statischen build mit:
```Shell
hugo
make build
```
- Kopiere das `public`-Verzeichnis auf den entsprechenden Webserver:
```Shell
scp -r public/ hosting.sao:/data/webserver/hilfe.systemausfall.org
make upload
```
# Build der Theme-Assets erzwingen
Nachdem die Theme-Assets initial gebaut wurden, werden spätere Änderungen nicht automatisch
erkannt.
Ein erneutes Erzeugen der Assets kann jedoch erzwungen werden:
```shell
make build-theme
```
# Theme anpassen
1. Änderungen im Theme (in `themes/hugo-geekdoc/`) vornehmen, committen und pushen