From 564a22abb22ca90325ba70b04a374d8976afcd9d Mon Sep 17 00:00:00 2001 From: Hadrien Date: Fri, 3 Jul 2026 23:33:48 +0200 Subject: [PATCH] manual ci script + no cache for map updates --- .forgejo/workflows/build.yaml | 7 +++--- .gitignore | 1 + Dockerfile | 9 +++---- README.md | 4 ++- manual-ci.sh | 47 +++++++++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+), 10 deletions(-) create mode 100755 manual-ci.sh diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index fe5a699..dd15bfb 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -13,10 +13,9 @@ jobs: run: | echo "${{ secrets.DOCKER_PASSWORD }}" | podman login git.interhacker.space --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin - - name: Build Container Image + - name: Build and Push Container Image run: | + trap 'rm -f dist.zip' EXIT + wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip podman build -t git.interhacker.space/interhack/camp-website-2026:latest . - - - name: Push Container Image - run: | podman push git.interhacker.space/interhack/camp-website-2026:latest diff --git a/.gitignore b/.gitignore index b936b79..01550dd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ guide.html +dist.zip diff --git a/Dockerfile b/Dockerfile index 5482b4b..c95570d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,12 @@ FROM docker.io/nginx:1.29-alpine -RUN apk add --update --no-cache wget unzip bash pandoc sed +RUN apk add --update --no-cache unzip bash pandoc sed -RUN wget -q https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip -RUN unzip -q dist.zip -d /tmp/carte +COPY dist.zip /tmp/dist.zip +RUN unzip -q /tmp/dist.zip -d /tmp/carte RUN mkdir -p /usr/share/nginx/html/carte RUN cp -r /tmp/carte/dist/* /usr/share/nginx/html/carte/ -RUN rm -rf /tmp/carte -RUN rm -rf dist.zip +RUN rm -rf /tmp/carte /tmp/dist.zip COPY guide.template.html . COPY update-guide.sh . diff --git a/README.md b/README.md index 9bd2043..829992a 100644 --- a/README.md +++ b/README.md @@ -40,11 +40,13 @@ First, login to the Docker registry: docker login git.interhacker.space ``` -Then, build and push to the registry: +Then, download the map bundle, build and push to the registry: ```bash +wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip docker build -t git.interhacker.space/interhack/camp-website-2026:latest . docker push git.interhacker.space/interhack/camp-website-2026:latest +rm -f dist.zip ``` The pull process is triggered every five minutes. diff --git a/manual-ci.sh b/manual-ci.sh new file mode 100755 index 0000000..bc0fb30 --- /dev/null +++ b/manual-ci.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +set -euo pipefail + +IMAGE="git.interhacker.space/interhack/camp-website-2026:latest" +REGISTRY="git.interhacker.space" + +need_cmd() { + command -v "$1" >/dev/null 2>&1 || { + echo "Missing required command: $1" >&2 + exit 1 + } +} + +need_cmd bash +need_cmd wget +need_cmd pandoc +need_cmd docker + +if [[ ! -x ./update-guide.sh ]]; then + echo "Missing or non-executable ./update-guide.sh" >&2 + exit 1 +fi + +echo "==> Generating guide.html" +bash ./update-guide.sh + +trap 'rm -f dist.zip' EXIT + +echo "==> Downloading map bundle" +wget -q -O dist.zip https://git.interhacker.space/epickiwi/2026.camp.carte/releases/download/latest/dist.zip + +echo "==> Logging in to ${REGISTRY}" +if [[ -n "${DOCKER_USERNAME:-}" && -n "${DOCKER_PASSWORD:-}" ]]; then + printf '%s' "$DOCKER_PASSWORD" | docker login "$REGISTRY" --username "$DOCKER_USERNAME" --password-stdin +else + docker login "$REGISTRY" +fi + +echo "==> Building image: ${IMAGE}" +docker build --no-cache -t "$IMAGE" . + +echo "==> Pushing image: ${IMAGE}" +docker push "$IMAGE" + +rm -f dist.zip + +echo "Done."