• Joined on 2025-02-03

hearthlight-ci (v9)

Published 2026-01-19 21:29:38 -06:00 by logan

Installation

docker pull git.ljones.me/logan/hearthlight-ci:v9
sha256:7ce800b20c91e73893b86e4402085b55b3f3874f81b458c18e3c1a925365693b

Image Layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=24.04
ADD file:249778a1782b02a1c2bcf9f292f5778d81442a53c3de1958d712f10baf7e0b60 in /
CMD ["/bin/bash"]
LABEL author=https://github.com/aBARICHELLO/godot-ci/graphs/contributors
USER root
SHELL [/bin/bash -c]
ENV DEBIAN_FRONTEND=noninteractive
RUN /bin/bash -c apt-get update && apt-get install -y --no-install-recommends ca-certificates git git-lfs unzip wget zip adb openjdk-17-jdk-headless rsync osslsigncode && rm -rf /var/lib/apt/lists/* # buildkit
ARG GODOT_VERSION=4.5.1
ARG RELEASE_NAME=stable
ARG SUBDIR=
ARG GODOT_TEST_ARGS=--headless --quit
ARG GODOT_PLATFORM=linux.x86_64
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-${RELEASE_NAME}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip && wget https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-${RELEASE_NAME}/Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz && mkdir -p ~/.cache && mkdir -p ~/.config/godot && mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME} && unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip && mv Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM} /usr/local/bin/godot && unzip Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz && mv templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME} && rm -f Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM}.zip # buildkit
ADD getbutler.sh /opt/butler/getbutler.sh # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c bash /opt/butler/getbutler.sh # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c /opt/butler/bin/butler -V # buildkit
ENV PATH=/opt/butler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV ANDROID_HOME=/usr/lib/android-sdk
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip && unzip commandlinetools-linux-*_latest.zip -d cmdline-tools && mv cmdline-tools $ANDROID_HOME/ && rm -f commandlinetools-linux-*_latest.zip # buildkit
ENV PATH=/usr/lib/android-sdk/cmdline-tools/cmdline-tools/bin:/opt/butler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c yes | sdkmanager --licenses && sdkmanager "platform-tools" "build-tools;33.0.2" "platforms;android-33" "cmdline-tools;latest" "cmake;3.22.1" "ndk;25.2.9519653" # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 && mv debug.keystore /root/debug.keystore # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c godot -v -e --quit --headless ${GODOT_TEST_ARGS} # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo '[gd_resource type="EditorSettings" format=3]' > ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo '[resource]' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/java_sdk_path = "/usr/lib/jvm/java-17-openjdk-amd64"' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/android_sdk_path = "/usr/lib/android-sdk"' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/debug_keystore = "/root/debug.keystore"' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/debug_keystore_user = "androiddebugkey"' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/debug_keystore_pass = "android"' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/force_system_user = false' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/timestamping_authority_url = ""' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
RUN |5 GODOT_VERSION=4.5.1 RELEASE_NAME=stable SUBDIR= GODOT_TEST_ARGS=--headless --quit GODOT_PLATFORM=linux.x86_64 /bin/bash -c echo 'export/android/shutdown_adb_on_exit = true' >> ~/.config/godot/editor_settings-${GODOT_VERSION:0:3}.tres # buildkit
LABEL maintainer=Logan Jones
LABEL description=Hearthlight CI image with Godot 4.5.1, Node.js, Go, Zig, Android NDK, Emscripten, and Java
ARG NODE_VERSION=20
ARG GO_VERSION=1.23.4
ARG ZIG_VERSION=0.14.0
ARG ANDROID_NDK_VERSION=r28b
ARG JAVA_VERSION=17
ARG PROTOC_VERSION=29.3
ARG EMSDK_VERSION=3.1.64
ENV DEBIAN_FRONTEND=noninteractive
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c apt-get update && apt-get install -y --no-install-recommends git git-lfs curl wget ca-certificates build-essential clang xz-utils unzip cmake python3 python3-pip && rm -rf /var/lib/apt/lists/* # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c wget -q https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip && unzip -q protoc-${PROTOC_VERSION}-linux-x86_64.zip -d /usr/local && rm protoc-${PROTOC_VERSION}-linux-x86_64.zip # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c pip install --break-system-packages protobuf grpcio-tools # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - && apt-get install -y nodejs && rm -rf /var/lib/apt/lists/* && npm install -g semantic-release @saithodev/semantic-release-gitea # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c wget -q https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz && tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz && rm go${GO_VERSION}.linux-amd64.tar.gz # buildkit
ENV PATH=/usr/local/go/bin:/root/go/bin:/usr/lib/android-sdk/cmdline-tools/cmdline-tools/bin:/opt/butler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV GOPATH=/root/go
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c git clone --recursive https://github.com/onion-4-dinner/gdbuf.git /tmp/gdbuf && cd /tmp/gdbuf && go build -o /root/go/bin/gdbuf . && rm -rf /tmp/gdbuf # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c wget -q https://ziglang.org/download/${ZIG_VERSION}/zig-linux-x86_64-${ZIG_VERSION}.tar.xz && tar -xf zig-linux-x86_64-${ZIG_VERSION}.tar.xz && mv zig-linux-x86_64-${ZIG_VERSION} /usr/local/zig && rm zig-linux-x86_64-${ZIG_VERSION}.tar.xz # buildkit
ENV PATH=/usr/local/zig:/usr/local/go/bin:/root/go/bin:/usr/lib/android-sdk/cmdline-tools/cmdline-tools/bin:/opt/butler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c apt-get update && apt-get install -y --no-install-recommends openjdk-${JAVA_VERSION}-jdk-headless && rm -rf /var/lib/apt/lists/* # buildkit
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c wget -q https://dl.google.com/android/repository/android-ndk-${ANDROID_NDK_VERSION}-linux.zip && unzip -q android-ndk-${ANDROID_NDK_VERSION}-linux.zip -d /opt && rm android-ndk-${ANDROID_NDK_VERSION}-linux.zip # buildkit
ENV ANDROID_NDK_HOME=/opt/android-ndk-r28b
ENV NDK_PATH=/opt/android-ndk-r28b
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk && cd /opt/emsdk && ./emsdk install ${EMSDK_VERSION} && ./emsdk activate ${EMSDK_VERSION} && chmod -R a+rx /opt/emsdk # buildkit
ENV EMSDK=/opt/emsdk
ENV PATH=/opt/emsdk:/opt/emsdk/upstream/emscripten:/usr/local/zig:/usr/local/go/bin:/root/go/bin:/usr/lib/android-sdk/cmdline-tools/cmdline-tools/bin:/opt/butler/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list && apt-get update && apt-get install -y --no-install-recommends docker-ce-cli && rm -rf /var/lib/apt/lists/* # buildkit
RUN |7 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 PROTOC_VERSION=29.3 EMSDK_VERSION=3.1.64 /bin/bash -c echo "=== Installed versions ===" && godot --version && node --version && npm --version && go version && zig version && java --version && protoc --version && cmake --version && gdbuf -version && /opt/emsdk/upstream/emscripten/emcc --version && echo "NDK: ${ANDROID_NDK_HOME}" && echo "EMSDK: ${EMSDK}" && echo "===========================" # buildkit
WORKDIR /project

Labels

Key Value
author https://github.com/aBARICHELLO/godot-ci/graphs/contributors
description Hearthlight CI image with Godot 4.5.1, Node.js, Go, Zig, Android NDK, Emscripten, and Java
maintainer Logan Jones
org.opencontainers.image.ref.name ubuntu
org.opencontainers.image.version 24.04
Details
Container
2026-01-19 21:29:38 -06:00
1
OCI / Docker
linux/amd64
4.3 GiB
Versions (9) View all
v9 2026-01-19
v8 2026-01-18
v7 2026-01-18
v6 2026-01-17
v5 2026-01-17