From 4290fa78d3138df6ce91d1e36cdb009cea6bf477 Mon Sep 17 00:00:00 2001 From: Robert Rapp Date: Thu, 3 Sep 2026 01:30:58 +0200 Subject: [PATCH] Actions-Workflow testweise wieder aufnehmen Rein additiv: docker-compose.yml und der laufende Portainer-Stack bleiben unberuehrt. Faellt der Lauf durch, aendert sich am Deployment nichts. Zweck ist herauszufinden, ob der Runner ueberhaupt anspringt und ob er den Docker-Socket in den Job-Container reicht. Der Schritt "Umgebung protokollieren" gibt genau das aus, ohne selbst fehlzuschlagen. Die Secrets REGISTRY_USER und REGISTRY_TOKEN sind gesetzt. Co-Authored-By: Claude Opus 5 --- .gitea/workflows/build.yml | 70 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..bc52725 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,70 @@ +name: Image bauen und in die Registry pushen + +on: + push: + branches: + - main + workflow_dispatch: + +env: + REGISTRY: gitea.mindboost.team + IMAGE: gitea.mindboost.team/rorapp/robbis.space + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Repository auschecken + uses: actions/checkout@v4 + with: + # themes/gokarna ist ein Submodule und wird fuer den Hugo-Build + # zwingend gebraucht. Ohne dies bricht das Dockerfile ab. + submodules: recursive + fetch-depth: 0 + + # Der Runner fuehrt Jobs in node:20-bookworm aus. Dort gibt es kein + # Docker. Dieser Schritt schlaegt nicht fehl, sondern protokolliert nur, + # was vorhanden ist - damit im Log sichtbar wird, woran es liegt, falls + # der Build danach scheitert. + - name: Umgebung protokollieren + run: | + grep PRETTY_NAME /etc/os-release || true + printf 'docker-CLI: '; command -v docker || echo 'fehlt' + printf 'Docker-Socket: '; test -S /var/run/docker.sock && echo 'vorhanden' || echo 'fehlt' + printf 'DOCKER_HOST: %s\n' "${DOCKER_HOST:-nicht gesetzt}" + + # Nur die CLI (rund 30 MB), kein Daemon. Gebaut wird ueber den vom + # Runner durchgereichten Socket. + - name: Docker-CLI nachruesten + run: | + if ! command -v docker >/dev/null 2>&1; then + curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-27.3.1.tgz \ + | tar xz -C /usr/local/bin --strip-components=1 docker/docker + fi + docker --version + + - name: An der Registry anmelden + run: | + echo "${{ secrets.REGISTRY_TOKEN }}" \ + | docker login "${{ env.REGISTRY }}" \ + --username "${{ secrets.REGISTRY_USER }}" \ + --password-stdin + + # Bewusst ohne buildx: der Runner ist amd64, ein einfacher docker build + # genuegt und spart die Plugin-Installation. + - name: Bauen + run: | + docker build \ + --file docker/Dockerfile \ + --tag "${{ env.IMAGE }}:latest" \ + --tag "${{ env.IMAGE }}:${{ gitea.sha }}" \ + . + + - name: Pushen + run: | + docker push "${{ env.IMAGE }}:latest" + docker push "${{ env.IMAGE }}:${{ gitea.sha }}" + + - name: Abmelden + if: always() + run: docker logout "${{ env.REGISTRY }}" || true