Add CI builder image and use it in the pipeline

builder.Dockerfile bakes the export step's dependencies into
git.teletype.hu/internal/love-builder and pre-fetches love.js to
/opt/lovejs.zip; the Makefile prefers the cached copy and falls
back to downloading from GitHub outside the image.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 19:17:14 +02:00
co-authored by Claude Fable 5
parent 5f81f7c179
commit 7786f078d6
4 changed files with 50 additions and 4 deletions
+12 -2
View File
@@ -14,6 +14,11 @@ OUTPUT_WEB_ZIP = $(PROJECT)-$(VERSION).html.zip
VERSION_FILE = .version
# The love-builder CI image pre-fetches love.js here; local builds fall
# back to downloading it from GitHub.
LOVEJS_URL = https://github.com/2dengine/love.js/archive/refs/heads/master.zip
LOVEJS_CACHE = /opt/lovejs.zip
all: build
build:
@@ -35,8 +40,13 @@ love:
web: love
@mkdir -p $(WEB_DIR)
@echo "==> Downloading love.js (2dengine)"
curl -sSL https://github.com/2dengine/love.js/archive/refs/heads/master.zip -o $(DIST_DIR)/lovejs.zip
@if [ -f $(LOVEJS_CACHE) ]; then \
echo "==> Using cached love.js ($(LOVEJS_CACHE))"; \
cp $(LOVEJS_CACHE) $(DIST_DIR)/lovejs.zip; \
else \
echo "==> Downloading love.js (2dengine)"; \
curl -sSL $(LOVEJS_URL) -o $(DIST_DIR)/lovejs.zip; \
fi
unzip -o $(DIST_DIR)/lovejs.zip -d $(DIST_DIR)/lovejs-src
rm -f $(DIST_DIR)/lovejs.zip
@echo "==> Assembling web bundle"