diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 4a9f14f..f573797 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -18,29 +18,38 @@ jobs: uses: actions/checkout@v4 with: # themes/gokarna ist ein Submodule und wird fuer den Hugo-Build - # zwingend gebraucht. Ohne dies bricht der Dockerfile-Check ab. + # zwingend gebraucht. Ohne dies bricht das Dockerfile ab. submodules: recursive fetch-depth: 0 - - name: Buildx einrichten - uses: docker/setup-buildx-action@v3 + # Bewusst reine Shell-Schritte statt docker/*-Actions: die muessten vom + # Runner erst von github.com geladen werden, was auf selbst gehosteten + # Gitea-Instanzen haeufig nicht klappt. Dieselben Befehle laufen bereits + # erfolgreich im Jenkinsfile von lichterei-web. + - name: Buildx vorbereiten + run: | + docker buildx inspect gitea-builder >/dev/null 2>&1 \ + && docker buildx use gitea-builder \ + || docker buildx create --name gitea-builder --use + docker buildx inspect --bootstrap - name: An der Registry anmelden - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ secrets.REGISTRY_USER }} - password: ${{ secrets.REGISTRY_TOKEN }} + run: | + echo "${{ secrets.REGISTRY_TOKEN }}" \ + | docker login ${{ env.REGISTRY }} \ + --username "${{ secrets.REGISTRY_USER }}" \ + --password-stdin - name: Bauen und pushen - uses: docker/build-push-action@v6 - with: - context: . - file: docker/Dockerfile - platforms: linux/amd64 - push: true - tags: | - ${{ env.IMAGE }}:latest - ${{ env.IMAGE }}:${{ gitea.sha }} - cache-from: type=registry,ref=${{ env.IMAGE }}:buildcache - cache-to: type=registry,ref=${{ env.IMAGE }}:buildcache,mode=max + run: | + docker buildx build \ + --platform linux/amd64 \ + --file docker/Dockerfile \ + --tag ${{ env.IMAGE }}:latest \ + --tag ${{ env.IMAGE }}:${{ gitea.sha }} \ + --push \ + . + + - name: Abmelden + if: always() + run: docker logout ${{ env.REGISTRY }} || true