master
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
c64-tools
CI/CD templates for Commodore 64 (ACME + VICE) game projects, in the same spirit as tic80-tools.
example-makefile.make— project Makefile: local dev targets (deps,build,run,clear,rebuild,rebuildrun) plus the Woodpecker pipeline targets (ci-version,ci-build,ci-artifact,ci-update).example-woodpecker.yaml— Woodpecker pipeline: version → build (Debian,apt install acme) → artifact (scp to the droparea) → update (calls the teletypegames/updateendpoint withplatform=c64).example-metadata.json— catalog metadata; theversionfield drivesci-version, the rest (name,title,author,desc,site,repo,license) is whatSoftwareUpdater::C64Servicewrites into the DB (sitebecomes the "Source Code",repothe "Repository" external link).example-tasks.json— VS Code.vscode/tasks.jsonwrapping the local make targets.
Usage in a game repo
- Copy
example-makefile.maketoMakefile, setPROJECT(andTARGETif the .prg name differs from$(PROJECT).prg). - Copy
example-metadata.jsontometadata.jsonand fill it in;namemust matchPROJECT. - Copy
example-woodpecker.yamlto.woodpecker.yamland add thedroparea_ssh_password/update_secret_keysecrets in Woodpecker. - Copy
example-tasks.jsonto.vscode/tasks.json.
Builder image
builder.Dockerfile bakes the pipeline's build-step dependencies
(ACME assembler + make) into git.teletypegames.org/internal/c64-builder,
so the build step no longer runs apt-get on every run (VICE is a
local-dev tool only and is not included):
docker build --platform linux/amd64 -f builder.Dockerfile \
-t git.teletypegames.org/internal/c64-builder:latest .
docker push git.teletypegames.org/internal/c64-builder:latest
The pipeline uploads $(PROJECT)-$(VERSION).prg and
$(PROJECT)-$(VERSION).metadata.json to the droparea, then triggers
/update?platform=c64&name=$(PROJECT)&version=$(VERSION), which
creates/updates the Software row and a Release with cartridge_path.
Languages
Makefile
80.2%
Dockerfile
19.8%