3416a68c1a2bb005e7b44c73910eafd40dd6fb5b
The TIC-80 pipeline already runs its export in the tic80pro image and the lint/minify/docs steps stay on plain alpine — the tic80-luatools builder image and the registry rename were not wanted here. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tic80-tools
CI/CD templates for TIC-80 (Lua) game projects.
example-makefile.make— project Makefile: local dev targets (build,minify,watch,lint,docs,import_assets,export_assets,clean,install_precommit_hook) plus the Woodpecker pipeline targets (ci-version,ci-lint,ci-minify,ci-docs,ci-export,ci-artifact,ci-update).example-woodpecker.yaml— Woodpecker pipeline: version → lint → minify → docs → export (TIC-80 Pro image) → artifact (scp to the droparea) → update (calls the teletypegames/updateendpoint withplatform=tic80).example-tasks.json— VS Code.vscode/tasks.jsonwith the common dev tasks: Run TIC80 (default build task,Cmd+Shift+B), Build & Run TIC80, Export assets and Make build.
Usage in a game repo
- Copy
example-makefile.maketoMakefileand setPROJECT(the cartridge is built as$(PROJECT).luafrom the file list in$(PROJECT).inc). - Copy
example-woodpecker.yamlto.woodpecker.yamland add thedroparea_ssh_password/update_secret_keysecrets in Woodpecker. - Copy
example-tasks.jsonto.vscode/tasks.jsonand replace the cart name (impostor.lua) with$(PROJECT).lua.
The pipeline uploads $(PROJECT)-$(VERSION).lua, .tic, .html.zip
and -docs.zip to the droparea, then triggers
/update?platform=tic80&name=$(PROJECT)&version=$(VERSION).
Detailed documentation lives on the wiki: /development/tic80.
Languages
Makefile
100%