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 f3dce4f08a
commit fb37e3a081
3 changed files with 48 additions and 9 deletions
+30
View File
@@ -0,0 +1,30 @@
# CI builder image for Bevy projects: Rust toolchain with the
# wasm32-unknown-unknown target and the wasm-bindgen CLI preinstalled,
# so the pipeline's build step does not download them on every run.
#
# WASM_BINDGEN_VERSION must match the `wasm-bindgen` crate version pinned
# in the game repos' Cargo.toml (see README) — rebuild and retag this image
# when bumping it. The CLI is the x86_64 musl binary, so the image must be
# built for linux/amd64.
#
# Build & push (the CI runner is linux/amd64):
# docker build --platform linux/amd64 -f builder.Dockerfile \
# --build-arg WASM_BINDGEN_VERSION=0.2.100 \
# -t git.teletype.hu/internal/bevy-builder:latest .
# docker push git.teletype.hu/internal/bevy-builder:latest
FROM rust:1-alpine
ARG WASM_BINDGEN_VERSION=0.2.100
RUN apk add --no-cache musl-dev make zip curl git jq
RUN rustup target add wasm32-unknown-unknown
RUN curl -sSL "https://github.com/rustwasm/wasm-bindgen/releases/download/${WASM_BINDGEN_VERSION}/wasm-bindgen-${WASM_BINDGEN_VERSION}-x86_64-unknown-linux-musl.tar.gz" \
| tar xz -C /usr/local/bin --strip-components=1 \
&& wasm-bindgen --version
WORKDIR /workspace
CMD ["/bin/sh"]