From 7ac20ef86a9331bc419bddbc82a8857e1c9fe1d5 Mon Sep 17 00:00:00 2001 From: Henry Date: Mon, 22 Dec 2025 14:42:37 +0100 Subject: [PATCH] .gitea/workflows/linux_arm64_docker-release.yaml aktualisiert --- .../workflows/linux_arm64_docker-release.yaml | 82 +++++++------------ 1 file changed, 29 insertions(+), 53 deletions(-) diff --git a/.gitea/workflows/linux_arm64_docker-release.yaml b/.gitea/workflows/linux_arm64_docker-release.yaml index c1243b1..5d32b65 100644 --- a/.gitea/workflows/linux_arm64_docker-release.yaml +++ b/.gitea/workflows/linux_arm64_docker-release.yaml @@ -3,7 +3,8 @@ run-name: Release-Docker-Linux-ARM64 on: push: - branches: [ "main", "master" ] + branches: [ "main"] + tags: [ "v*" ] jobs: build-docker-linux-arm64-release: @@ -17,33 +18,18 @@ jobs: with: fetch-depth: 0 - # 1. Nächste Version berechnen - - name: Determine Next Version - id: semantic_release - uses: go-semantic-release/action@v1 - with: - # Korrigierte Argumente für Gitea - custom-arguments: "--provider gitea --provider-opt gitea_base_url=https://gitea.penry.de" - github-token: ${{ secrets.RELEASE_TOKEN }} - allow-initial-development-versions: true - force-bump-patch-version: true - dry-run: true - env: - # Wir setzen die Variablen ZUSÄTZLICH als ENV, das ist der sicherste Weg - GITEA_BASE_URL: https://gitea.penry.de - GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} - - # 2. Variablen für den weiteren Verlauf setzen - - name: Prepare Variables + - name: Get Version + id: get_version run: | - echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV - if [ -z "${{ steps.semantic_release.outputs.version }}" ]; then - echo "NEXT_VERSION=latest" >> $GITHUB_ENV - echo "IS_NEW_RELEASE=false" >> $GITHUB_ENV + # Wenn ein Tag vorhanden ist (z.B. v1.0.2), nimm diesen. + # Sonst generiere eine Version aus dem Datum + Kurz-Hash. + if [[ $GITHUB_REF == refs/tags/* ]]; then + VERSION=${GITHUB_REF#refs/tags/} else - echo "NEXT_VERSION=${{ steps.semantic_release.outputs.version }}" >> $GITHUB_ENV - echo "IS_NEW_RELEASE=true" >> $GITHUB_ENV + VERSION="latest-$(date +%Y%m%d)-$(git rev-parse --short HEAD)" fi + echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "REPO_LC=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV - name: Login to own image registry uses: docker/login-action@v3 @@ -57,40 +43,30 @@ jobs: with: dotnet-version: '10.0.x' - # 3. Build & Push (immer latest, plus Version falls vorhanden) - - name: Build and Push Docker Image + - name: Build Linux ARM64 Docker Image run: | - TAGS="-t gitea.penry.de/${{ env.REPO_LC }}:latest" - if [ "${{ env.IS_NEW_RELEASE }}" = "true" ]; then - TAGS="$TAGS -t gitea.penry.de/${{ env.REPO_LC }}:${{ env.NEXT_VERSION }}" - fi - - docker build $TAGS \ + # Wir bauen das Image mit ZWEI Tags: + # 1. Der spezifischen Version (z.B. v1.0.2) + # 2. Dem 'latest' Tag (damit das aktuellste Image immer 'latest' ist) + docker build \ + -t gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }} \ + -t gitea.penry.de/${{ env.REPO_LC }}:latest \ --label "org.opencontainers.image.source=https://gitea.penry.de/${{ github.repository }}" \ . - - docker push gitea.penry.de/${{ env.REPO_LC }} --all-tags - # 4. Git Tag & Release in Gitea erstellen - - name: Execute Semantic Release - if: env.IS_NEW_RELEASE == 'true' - uses: go-semantic-release/action@v1 - with: - custom-arguments: "--provider gitea --provider-opt gitea_base_url=https://gitea.penry.de" - github-token: ${{ secrets.RELEASE_TOKEN }} - env: - GITEA_BASE_URL: https://gitea.penry.de - GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} - - # 5. Export & Asset Upload - - name: Export Image Tar - if: env.IS_NEW_RELEASE == 'true' + - name: Push Images run: | - docker save -o couchlog-linux-arm64-${{ env.NEXT_VERSION }}.tar gitea.penry.de/${{ env.REPO_LC }}:${{ env.NEXT_VERSION }} + docker push gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }} + docker push gitea.penry.de/${{ env.REPO_LC }}:latest - - name: Upload Release Asset - if: env.IS_NEW_RELEASE == 'true' + - name: Make Tar from image + run: | + # Wir nutzen die Version auch im Dateinamen vom Tar + docker save -o couchlog-linux-arm64-${{ env.VERSION }}.tar gitea.penry.de/${{ env.REPO_LC }}:${{ env.VERSION }} + + - name: Release + if: startsWith(github.ref, 'refs/tags/v') uses: akkuman/gitea-release-action@v1 with: files: |- - couchlog-linux-arm64-${{ env.NEXT_VERSION }}.tar \ No newline at end of file + couchlog-linux-arm64-${{ env.VERSION }}.tar \ No newline at end of file