From c55341b076566461d6d7918f0ccd4c5f2ae93900 Mon Sep 17 00:00:00 2001 From: hz Date: Mon, 20 Jul 2026 01:08:16 -0500 Subject: [PATCH] Reduce web export build disk usage --- .gitea/workflows/deploy-web.yml | 14 ++++++++++++-- web/Dockerfile | 14 +++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/deploy-web.yml b/.gitea/workflows/deploy-web.yml index 230505b..9016c91 100644 --- a/.gitea/workflows/deploy-web.yml +++ b/.gitea/workflows/deploy-web.yml @@ -24,8 +24,13 @@ jobs: - name: Reclaim failed build layers run: | + rm -f "${IMAGE_TAR}" docker container prune -f docker image prune -f + docker image prune -af --filter "until=24h" + docker builder prune -af || true + docker system df + df -h - name: Build Web game image run: | @@ -42,9 +47,14 @@ jobs: ssh -o StrictHostKeyChecking=no hz@"$node" "sudo ctr -n k8s.io images import /tmp/step3-web.tar && rm -f /tmp/step3-web.tar" done - - name: Clean runner image archive + - name: Clean runner build artifacts if: always() - run: rm -f "${IMAGE_TAR}" + run: | + rm -f "${IMAGE_TAR}" + if [ -n "${BUILD_TAG}" ]; then + docker image rm "step3-web:${BUILD_TAG}" 2>/dev/null || true + fi + docker image prune -f - name: Configure kubeconfig env: diff --git a/web/Dockerfile b/web/Dockerfile index 2a9fa26..74260c9 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -7,24 +7,24 @@ ARG BUILD_REVISION=development RUN apt-get update \ && apt-get install -y --no-install-recommends \ - ca-certificates curl unzip libasound2t64 libfontconfig1 libgl1 libx11-6 \ + ca-certificates curl libarchive-tools unzip libasound2t64 libfontconfig1 libgl1 libx11-6 \ libxcursor1 libxi6 libxinerama1 libxrandr2 \ && rm -rf /var/lib/apt/lists/* WORKDIR /opt/godot RUN curl -fsSLO "https://github.com/godotengine/godot-builds/releases/download/${GODOT_RELEASE}/Godot_v${GODOT_RELEASE}_linux.x86_64.zip" \ - && curl -fsSLO "https://github.com/godotengine/godot-builds/releases/download/${GODOT_RELEASE}/Godot_v${GODOT_RELEASE}_export_templates.tpz" \ && curl -fsSLO "https://github.com/godotengine/godot-builds/releases/download/${GODOT_RELEASE}/SHA512-SUMS.txt" \ - && grep "Godot_v${GODOT_RELEASE}_linux.x86_64.zip\|Godot_v${GODOT_RELEASE}_export_templates.tpz" SHA512-SUMS.txt > selected-checksums.txt \ + && grep "Godot_v${GODOT_RELEASE}_linux.x86_64.zip" SHA512-SUMS.txt > selected-checksums.txt \ && sha512sum --check selected-checksums.txt \ && unzip -q "Godot_v${GODOT_RELEASE}_linux.x86_64.zip" \ && install -m 0755 "Godot_v${GODOT_RELEASE}_linux.x86_64" /usr/local/bin/godot \ && mkdir -p "/root/.local/share/godot/export_templates/${GODOT_TEMPLATE_DIR}" \ - && unzip -j -q "Godot_v${GODOT_RELEASE}_export_templates.tpz" \ - templates/web_nothreads_debug.zip templates/web_nothreads_release.zip \ - -d "/root/.local/share/godot/export_templates/${GODOT_TEMPLATE_DIR}" \ + && curl -fsSL "https://github.com/godotengine/godot-builds/releases/download/${GODOT_RELEASE}/Godot_v${GODOT_RELEASE}_export_templates.tpz" \ + | bsdtar -xOf - templates/web_nothreads_release.zip \ + > "/root/.local/share/godot/export_templates/${GODOT_TEMPLATE_DIR}/web_nothreads_release.zip" \ + && test -s "/root/.local/share/godot/export_templates/${GODOT_TEMPLATE_DIR}/web_nothreads_release.zip" \ && unzip -tq "/root/.local/share/godot/export_templates/${GODOT_TEMPLATE_DIR}/web_nothreads_release.zip" \ - && rm -f Godot_v*.zip Godot_v*.tpz SHA512-SUMS.txt selected-checksums.txt + && rm -f Godot_v*.zip Godot_v*_linux.x86_64 SHA512-SUMS.txt selected-checksums.txt WORKDIR /src COPY . .