master
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
phaser-tools
CI/CD templates for Phaser (JavaScript) game projects, in the same spirit as ebitengine-tools and love-tools.
example-makefile.make— project Makefile: local dev targets (build,web,serve,export,watch,clean) plus the Woodpecker pipeline targets (ci-version,ci-export,ci-upload,ci-update).example-woodpecker.yaml— Woodpecker pipeline: version → build (syntax check + web bundle in thegit.teletypegames.org/internal/phaser-builderimage) → upload (scp to the droparea) → update (calls the teletypegames/updateendpoint withplatform=phaser).builder.Dockerfile— the CI builder image:node:22-alpinewith make/zip/curl baked in.example-tasks.json— VS Code.vscode/tasks.jsonwith the common dev tasks: Serve (make serve, default build task,Cmd+Shift+B), Build Web and Make build.web/index.html— the HTML shell downloaded bymake weband packaged next tophaser.min.jsand the bundledgame.js.
There is no bundler and no node_modules: the pinned
phaser.min.js build is downloaded from the jsDelivr CDN at export
time (the same way love-tools downloads love.js), and the game
sources in src/*.js are concatenated in filename order into a
single game.js. Node is only used for a node --check syntax pass.
Usage in a game repo
- Copy
example-makefile.maketoMakefile, setPROJECTandPHASER_VERSION, and put the game sources intosrc/(they are concatenated in filename order — prefix with numbers if load order matters). - Copy
example-woodpecker.yamlto.woodpecker.yamland add thedroparea_ssh_password/update_secret_keysecrets in Woodpecker. - Copy
example-tasks.jsonto.vscode/tasks.json.
make serve builds the web bundle and serves it on
http://localhost:8000 (Python 3's built-in HTTP server).
The pipeline uploads $(PROJECT)-$(VERSION).html.zip to the droparea,
then triggers
/update?platform=phaser&name=$(PROJECT)&version=$(VERSION).
Builder image
docker build --platform linux/amd64 -f builder.Dockerfile \
-t git.teletypegames.org/internal/phaser-builder:latest .
docker push git.teletypegames.org/internal/phaser-builder:latest
Detailed documentation lives on the wiki: /development/phaser.
Languages
Makefile
72%
Dockerfile
14.6%
HTML
13.4%