• Joined on 2025-02-03

hearthlight-ci (v2)

Published 2026-01-17 16:45:19 -06:00 by logan

Installation

docker pull git.ljones.me/logan/hearthlight-ci:v2
sha256:3c9a1c6e66163dce61dca514ebf1c4471a26a1d773da99c2ed0bf1363f12815d

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, 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
ENV DEBIAN_FRONTEND=noninteractive
RUN |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /bin/bash -c apt-get update && apt-get install -y --no-install-recommends git git-lfs curl wget ca-certificates build-essential xz-utils unzip protobuf-compiler cmake && rm -rf /var/lib/apt/lists/* # buildkit
RUN |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /bin/bash -c go install github.com/onion-4-dinner/gdbuf@latest # buildkit
RUN |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /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 |5 NODE_VERSION=20 GO_VERSION=1.23.4 ZIG_VERSION=0.14.0 ANDROID_NDK_VERSION=r28b JAVA_VERSION=17 /bin/bash -c echo "=== Installed versions ===" && godot --version && node --version && npm --version && go version && zig version && java --version && protoc --version && cmake --version && gdbuf --help || true && echo "NDK: ${ANDROID_NDK_HOME}" && 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, and Java
maintainer Logan Jones
org.opencontainers.image.ref.name ubuntu
org.opencontainers.image.version 24.04
Details
Container
2026-01-17 16:45:19 -06:00
0
OCI / Docker
linux/amd64
3.8 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