Block a user
hearthlight-ci (v9)
Published 2026-01-19 21:29:38 -06:00 by logan
Installation
docker pull git.ljones.me/logan/hearthlight-ci:v9sha256: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 |