From 252a0ef7bf031c32ab1e555b731682fd8606ccc9 Mon Sep 17 00:00:00 2001
From: Sthope <sthope@noreply@SthopeGit>
Date: Tue, 23 Apr 2024 19:43:41 +0200
Subject: [PATCH] Update .gitea/workflows/build-image.yml

---
 .gitea/workflows/build-image.yml | 89 ++++++++------------------------
 1 file changed, 22 insertions(+), 67 deletions(-)

diff --git a/.gitea/workflows/build-image.yml b/.gitea/workflows/build-image.yml
index 5516d9a..df186f4 100644
--- a/.gitea/workflows/build-image.yml
+++ b/.gitea/workflows/build-image.yml
@@ -1,92 +1,47 @@
 name: Image Build
+
 on:
-  push:
-    branches:
-      - main
-  # Manueel starte
-  workflow_dispatch:
-# on:
-#   push:
-#     branches:
-#       - main
-#   workflow_dispatch:
-#     inputs:
-#       force_build:
-#         description: Force new build?
-#         required: false
-#         default: "false"
-#         type: string
-#   schedule: # run daily
-#     - cron: '0 0 * * *'
+  schedule:
+    - cron: '0 0 * * *' # run daily
 
 jobs:
   init:
     runs-on: ubuntu-latest
-     # Map a step output to a job output
     outputs:
       iventoy: ${{ steps.iventoy.outputs.version }}
       buildOrNot: ${{ steps.buildOrNot.outputs.buildOrNot }}
     steps:
-      - 
-        name: get latest versions
+      - name: get latest versions
         id: iventoy
         run: |
           version=$(curl -s https://api.github.com/repos/ventoy/PXE/releases/latest | grep "tag_name" | cut -d'"' -f4)
-          echo "version=${version#'v'}" >> $GITHUB_OUTPUT
-      - # Check labels of the latest image on docker hub
-        name: 
-        id: buildOrNOt
-        env: # if [ -z $FORCE_BUILD ]; then echo "false"; else echo $FORCE_BUILD; fi -> ternary -> ${FORCE_BUILD:-false}
-          FORCE_BUILD: ${{ github.event.inputs.force_build }}
+          echo "version=${version#'v'}" >> $GITEA_OUTPUT
+      - name: Check labels of the latest image on Docker Hub
+        id: buildOrNot
         run: |
-          repo=${1:-${{ github.repository }}}
+          repo=${1:-$GITEA_REPO}
           tag=${2:-latest}
           token=$(curl -s "https://auth.docker.io/token?service=registry.docker.io&scope=repository:${repo}:pull" | jq -r '.token')
           digest=$(curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -H "Authorization: Bearer $token" -s "https://registry-1.docker.io/v2/${repo}/manifests/${tag}" | jq -r .config.digest)
           latest=$(curl -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -H "Authorization: Bearer $token" -s -L "https://registry-1.docker.io/v2/${repo}/blobs/${digest}" | jq . | grep -Ew "IVENTOY" | cut -d'"' -f4)
-          echo "buildOrNot=$([ $latest != '${{ steps.iventoy.outputs.version }}' ] && echo "true" || echo "${FORCE_BUILD:-false}")" >> $GITHUB_OUTPUT
-      - 
-        name: print
-        run: | 
-          echo ${{ steps.iventoy.outputs.version }}
-          echo ${{ steps.buildOrNot.outputs.buildOrNot }}
+          echo "buildOrNot=$([ $latest != '$GITEA_IVENTOY' ] && echo "true" || echo "$GITEA_FORCE_BUILD")" >> $GITEA_OUTPUT
 
   docker:
     name: iventoy image
     runs-on: ubuntu-latest
-    needs: 
+    needs:
       - init
-    if: |
-      needs.init.outputs.buildOrNot == 'true'
+    if: ${{ needs.init.outputs.buildOrNot == 'true' }}
     steps:
-      -
-        name: init vars
+      - name: Checkout
         run: |
-          echo "iventoy: ${{ needs.init.outputs.iventoy }}"
-      -
-        name: Checkout
-        uses: actions/checkout@v3
-      -
-        name: Login to Docker Hub
-        uses: docker/login-action@v2
-        with:
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
-      -
-        name: Set up Docker Buildx
-        uses: docker/setup-buildx-action@v2
-      -
-        name: Build and push
-        uses: docker/build-push-action@v4
-        with:
-          provenance: false # Breaking change introduced with 3.3.0 https://github.com/docker/build-push-action/releases/tag/v3.3.0, when an image is pushed since that version I can't retrieve the blob with labels anymore based on the digest via registry api, night have to look into an alternative way to do this 
-          context: .
-          file: ./Dockerfile
-          labels: |
-            IVENTOY=${{ needs.init.outputs.iventoy }}
-          build-args: |
-            IVENTOY=${{ needs.init.outputs.iventoy }}
-          push: true
-          tags: |
-            ${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ needs.init.outputs.iventoy }}
-            ${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:latest
\ No newline at end of file
+          echo "Checkout repository"
+      - name: Login to Docker Hub
+        run: |
+          docker login -u $GITEA_DOCKERHUB_USERNAME -p $GITEA_DOCKERHUB_TOKEN
+      - name: Build and push
+        run: |
+          docker build -t $GITEA_DOCKERHUB_USERNAME/${GITEA_REPOSITORY_NAME}:${GITEA_IVENTOY} --build-arg IVENTOY=$GITEA_IVENTOY .
+          docker push $GITEA_DOCKERHUB_USERNAME/${GITEA_REPOSITORY_NAME}:${GITEA_IVENTOY}
+          docker tag $GITEA_DOCKERHUB_USERNAME/${GITEA_REPOSITORY_NAME}:${GITEA_IVENTOY} $GITEA_DOCKERHUB_USERNAME/${GITEA_REPOSITORY_NAME}:latest
+          docker push $GITEA_DOCKERHUB_USERNAME/${GITEA_REPOSITORY_NAME}:latest