From 09bf8843f07557ddaf16c0ea9ddfab6fc2c78fb6 Mon Sep 17 00:00:00 2001 From: Henry Trumme Date: Thu, 18 Dec 2025 21:52:54 +0100 Subject: [PATCH] .gitea/workflows/linux_arm64_docker-release.yaml aktualisiert --- .../workflows/linux_arm64_docker-release.yaml | 100 +++++++++++------- 1 file changed, 59 insertions(+), 41 deletions(-) diff --git a/.gitea/workflows/linux_arm64_docker-release.yaml b/.gitea/workflows/linux_arm64_docker-release.yaml index 8afcf3e..144d503 100644 --- a/.gitea/workflows/linux_arm64_docker-release.yaml +++ b/.gitea/workflows/linux_arm64_docker-release.yaml @@ -8,78 +8,96 @@ on: 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 + contents: write + packages: write steps: - - name: Install packages - run: apk add --no-cache git curl wget unzip bash nodejs npm docker + - name: Install required packages + shell: bash + run: | + set -e + if command -v apk >/dev/null 2>&1; then + echo "Using apk (Alpine)" + apk add --no-cache \ + git curl wget unzip bash nodejs npm docker + elif command -v apt-get >/dev/null 2>&1; then + echo "Using apt (Debian/Ubuntu)" + sudo apt-get update + sudo apt-get install -y \ + git curl wget unzip bash nodejs npm docker.io + else + echo "Unsupported OS package manager" + exit 1 + fi - name: Checkout uses: actions/checkout@v4 - # 1. Login bei der Gitea Registry - - name: Bei Gitea Container Registry anmelden + # Login to Gitea Container Registry + - name: Login to Gitea Container Registry uses: docker/login-action@v3 with: - registry: ${{ gitea.server_url }} + registry: ${{ github.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 + # Docker metadata + - name: Extract Docker metadata id: meta uses: docker/metadata-action@v5 with: - images: ${{ gitea.server_url }}/${{ github.repository }} + images: ${{ github.server_url }}/${{ github.repository }} tags: | type=ref,event=tag - type=raw,value=latest,enable=${{ github.ref == format('refs/tags/{0}', github.ref_name) }} + type=raw,value=latest - # 3. Setup Docker Buildx (verbessert Performance und Caching) + # Buildx - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - # 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 + # Build & Push + - name: Build and Push Docker Image uses: docker/build-push-action@v6 with: context: . - push: true # Lädt es direkt in Gitea "Pakete" hoch + platforms: linux/arm64 + push: true 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 + # Build local image for tarball + - name: Build local Docker image 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: Save Docker image as tar + run: docker save couchlog-linux-arm64 -o CouchLog-Linux-ARM64-Docker-Image.tar - # 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/') + # Create Release (Gitea compatible) + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - # 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 }} - ``` + tag_name: ${{ github.ref_name }} + release_name: ${{ github.ref_name }} draft: false prerelease: false - fail_on_unmatched_files: true # Warnt, wenn der Name wieder falsch ist + body: | + ## Docker Image (ARM64) + + ```bash + docker pull ${{ github.server_url }}/${{ github.repository }}:${{ github.ref_name }} + ``` + + - name: Upload Docker Image Tarball + uses: actions/upload-release-asset@v1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: CouchLog-Linux-ARM64-Docker-Image.tar + asset_name: CouchLog-Linux-ARM64-Docker-Image.tar + asset_content_type: application/x-tar