Deploy hooks

This commit is contained in:
hh
2026-09-09 00:37:04 +02:00
parent 1dafc5e2a7
commit a4994ce234
2 changed files with 18 additions and 1 deletions
+16 -1
View File
@@ -1,6 +1,9 @@
COMPOSE := docker compose{% if layout == 'part' %} --project-directory ..{% endif %} COMPOSE := docker compose{% if layout == 'part' %} --project-directory ..{% endif %}
{% if serve != 'api' %}IMAGE := {{ project_slug }}/frontend
{% endif %}changed = ! git diff --quiet $(1) -- $(2) 2>/dev/null
stamp = { git update-ref $(1) HEAD 2>/dev/null || true; }
.PHONY: {% if layout == 'root' %}env recreate rebuild restart logs down {% endif %}fmt check build dev .PHONY: {% if layout == 'root' %}env recreate rebuild restart logs down deploy {% endif %}fmt check build pre-deploy post-deploy dev
fmt: fmt:
bun run fix bun run fix
@@ -13,6 +16,14 @@ build:
{% if serve == 'api' %} $(COMPOSE) run --rm frontend-dev sh -c "bun install && bun run build" {% if serve == 'api' %} $(COMPOSE) run --rm frontend-dev sh -c "bun install && bun run build"
{% else %} $(COMPOSE) build frontend {% else %} $(COMPOSE) build frontend
{% endif %} {% endif %}
pre-deploy:
@if $(call changed,refs/deploy/frontend,.) || {% if serve == 'api' %}! test -d build{% else %}! docker image inspect $(IMAGE) >/dev/null 2>&1{% endif %}; then \
$(MAKE) build && $(call stamp,refs/deploy/frontend); \
fi
post-deploy:
@:
dev: dev:
bun run dev bun run dev
{% if layout == 'root' %} {% if layout == 'root' %}
@@ -34,4 +45,8 @@ logs:
down: down:
$(COMPOSE) down $(COMPOSE) down
deploy: pre-deploy
$(COMPOSE) up -d
$(MAKE) post-deploy
{% endif %} {% endif %}
@@ -9,4 +9,6 @@ make recreate
`make env` creates `.env` and `docker-compose.override.yml` from their examples. `make recreate` starts the selected profiles, `make rebuild` builds the image first, `make logs`, `make restart` and `make down` do what they say. `make env` creates `.env` and `docker-compose.override.yml` from their examples. `make recreate` starts the selected profiles, `make rebuild` builds the image first, `make logs`, `make restart` and `make down` do what they say.
To deploy, `git pull && make deploy`. It runs `make pre-deploy`, which rebuilds the image only when something in the repository changed, then `docker compose up -d`. A deploy system with its own `up` step calls `make pre-deploy` before it and `make post-deploy` after. What was built is remembered as `refs/deploy/*` in the clone.
`make dev` runs the Vite dev server on the host, `make fmt` formats, `make check` runs svelte-check and the linter. `make dev` runs the Vite dev server on the host, `make fmt` formats, `make check` runs svelte-check and the linter.