2.3 KiB
2.3 KiB
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).example-woodpecker.yaml— a one-line marker (platform: c64): the full pipeline (version → build → artifact → publish) is served by the update server's Woodpecker configuration extension — preview it withcurl "https://teletypegames.org/build/config?platform=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.yaml(a one-line marker — the pipeline itself is served by the update server; addname:when the software name differs from the repo name) and add theapplication_tokensecret in Woodpecker (an ApplicationToken with theupdate+uploadscopes, created in the admin). - 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 served pipeline uploads $(PROJECT)-$(VERSION).prg and
$(PROJECT)-$(VERSION).metadata.json via /build/upload, then triggers
/build/publish?platform=c64&name=$(PROJECT)&version=$(VERSION), which
creates/updates the Software row and a Release with cartridge_path.