From 71a11b1950311fe433fc0c8ac00152380d28ff09 Mon Sep 17 00:00:00 2001 From: Henry Trumme Date: Wed, 17 Dec 2025 21:24:51 +0100 Subject: [PATCH] .gitea/workflows/linux_arm64_docker-release.yaml aktualisiert --- .../workflows/linux_arm64_docker-release.yaml | 65 ++++++++++++++++--- 1 file changed, 55 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/linux_arm64_docker-release.yaml b/.gitea/workflows/linux_arm64_docker-release.yaml index 88e0c66..8afcf3e 100644 --- a/.gitea/workflows/linux_arm64_docker-release.yaml +++ b/.gitea/workflows/linux_arm64_docker-release.yaml @@ -1,12 +1,18 @@ name: Build Docker Linux ARM64 Release on: - release: - #types: [published] + push: + tags: + - 'v*' jobs: build-docker-linux-arm64-release: runs-on: [self-hosted, linux, arm64, docker] + + permissions: + contents: write # Nötig, um das Release zu erstellen + packages: write # Nötig, um in die Container Registry zu pushen + steps: - name: Install packages run: apk add --no-cache git curl wget unzip bash nodejs npm docker @@ -14,27 +20,66 @@ jobs: - name: Checkout uses: actions/checkout@v4 + # 1. Login bei der Gitea Registry + - name: Bei Gitea Container Registry anmelden + uses: docker/login-action@v3 + with: + registry: ${{ gitea.server_url }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # 2. Metadaten berechnen (sorgt für korrekte Tags wie :v1.0 und :latest) + - name: Metadaten für Docker extrahieren + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ gitea.server_url }}/${{ github.repository }} + tags: | + type=ref,event=tag + type=raw,value=latest,enable=${{ github.ref == format('refs/tags/{0}', github.ref_name) }} + + # 3. Setup Docker Buildx (verbessert Performance und Caching) - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build Linux ARM64 Docker Image + # 4. Bauen und PUSHEN in die Registry + # Wir nutzen hier 'load: true', um das Image danach auch für 'docker save' verfügbar zu haben, + # und pushen es danach separat, oder wir bauen es direkt. + # Da build-push-action "push" und "load" (lokal speichern) oft nicht gleichzeitig kann, + # ist es am sichersten, das Image zu bauen und direkt zu pushen. + - name: Build and Push to Registry + uses: docker/build-push-action@v6 + with: + context: . + push: true # Lädt es direkt in Gitea "Pakete" hoch + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + # 5. Optional: Image zusätzlich als .tar bauen für den Release-Anhang + # (Falls Sie die Datei wirklich noch als Download brauchen) + - name: Build local for Tarball run: docker build -t couchlog-linux-arm64 . - name: Save Docker Image to Tar run: docker save -o CouchLog-Linux-ARM64-Docker-Image.tar couchlog-linux-arm64 - - name: Zeige alle Dateien an (Debug) - run: ls -R - + # 6. Release erstellen und .tar Datei anhängen - name: Release erstellen & Datei hochladen uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: - files: CouchLog-Linux-ARM-Docker-Image.tar # Pfad zur Datei, die hochgeladen werden soll - # Optional: Release-Text anpassen - body: "Automatisches Release für ${{ github.ref_name }}" + # Hier war vorher der Fehler (ARM vs ARM64) - jetzt korrigiert: + files: CouchLog-Linux-ARM64-Docker-Image.tar + body: | + ## Docker Image + Das Image ist auch verfügbar unter: + `${{ gitea.server_url }}/${{ github.repository }}:${{ github.ref_name }}` + + ```bash + docker pull ${{ gitea.server_url }}/${{ github.repository }}:${{ github.ref_name }} + ``` draft: false prerelease: false + fail_on_unmatched_files: true # Warnt, wenn der Name wieder falsch ist env: - # Gitea stellt diesen Token automatisch bereit, er wird für den Upload benötigt GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file