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:
@@ -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
|
||||||
|
|||||||
@@ -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"]
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user