Add CI builder image and use it in the pipeline

builder.Dockerfile bakes the build step's dependencies into
git.teletype.hu/internal/* so the pipeline no longer installs
packages on every run.

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 d6d5f60be0
commit 195190c213
3 changed files with 32 additions and 2 deletions
+13
View File
@@ -27,6 +27,19 @@ spirit as [tic80-tools](../tic80-tools).
`droparea_ssh_password` / `update_secret_key` secrets in Woodpecker. `droparea_ssh_password` / `update_secret_key` secrets in Woodpecker.
4. Copy `example-tasks.json` to `.vscode/tasks.json`. 4. Copy `example-tasks.json` to `.vscode/tasks.json`.
## Builder image
`builder.Dockerfile` bakes the pipeline's build-step dependencies
(ACME assembler + make) into `git.teletype.hu/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):
```sh
docker build --platform linux/amd64 -f builder.Dockerfile \
-t git.teletype.hu/internal/c64-builder:latest .
docker push git.teletype.hu/internal/c64-builder:latest
```
The pipeline uploads `$(PROJECT)-$(VERSION).prg` and The pipeline uploads `$(PROJECT)-$(VERSION).prg` and
`$(PROJECT)-$(VERSION).metadata.json` to the droparea, then triggers `$(PROJECT)-$(VERSION).metadata.json` to the droparea, then triggers
`/update?platform=c64&name=$(PROJECT)&version=$(VERSION)`, which `/update?platform=c64&name=$(PROJECT)&version=$(VERSION)`, which
+18
View File
@@ -0,0 +1,18 @@
# CI builder image for C64 projects: ACME assembler + make, so the
# pipeline's build step does not run apt-get on every run. The VICE
# emulator is a local-dev tool only and is intentionally not included.
#
# Build & push (the CI runner is linux/amd64):
# docker build --platform linux/amd64 -f builder.Dockerfile \
# -t git.teletype.hu/internal/c64-builder:latest .
# docker push git.teletype.hu/internal/c64-builder:latest
FROM debian:stable-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends make acme zip curl ca-certificates \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
CMD ["/bin/bash"]
+1 -2
View File
@@ -6,9 +6,8 @@ steps:
- 'make ci-version' - 'make ci-version'
- name: build - name: build
image: debian:stable-slim image: git.teletype.hu/internal/c64-builder:latest
commands: commands:
- 'apt-get update && apt-get install -y --no-install-recommends make acme'
- 'make ci-build' - 'make ci-build'
- name: artifact - name: artifact