From 52a6015ea0f974e563f5954f77f877f2c65947e1 Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 6 Nov 2025 22:06:33 +0100 Subject: [PATCH] Added local build --- .gitea/workflows/build-local.yaml | 61 +++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .gitea/workflows/build-local.yaml diff --git a/.gitea/workflows/build-local.yaml b/.gitea/workflows/build-local.yaml new file mode 100644 index 0000000..a679d5c --- /dev/null +++ b/.gitea/workflows/build-local.yaml @@ -0,0 +1,61 @@ +name: Build & Publish to GHCR + +on: + workflow_dispatch: + +env: + GHCR_ORG: gansejunge + IMAGE_NAME: app-notifications-backend-api-internal + IMAGE_PATH: ghcr.io/gansejunge/app-notifications-backend-api-internal + OPS_ORG: notifier + OPS_REPO: ops-deployment + OPS_BRANCH_BASE: main + OPS_PATH: backend-api-internal/deployment.yaml + +jobs: + build: + runs-on: local + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Log in to GHCR + run: echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u ${{ secrets.GHCR_USERNAME }} --password-stdin + + - name: Get Latest Tag + id: get_tag + run: | + BASE64_TOKEN=$(echo "${{ secrets.GHCR_TOKEN }}" | base64) + LATEST_TAG=$(curl -s -H "Authorization: Bearer $BASE64_TOKEN" \ + https://ghcr.io/v2/${{ env.GHCR_ORG }}/${{ env.IMAGE_NAME }}/tags/list \ + | jq -r '.tags | map(select(test("^[0-9]+$"))) | map(tonumber) | max // 0') + NEXT_TAG=$((LATEST_TAG + 1)) + echo "latest=$LATEST_TAG" >> $GITHUB_OUTPUT + echo "next=$NEXT_TAG" >> $GITHUB_OUTPUT + + - name: Build and Push Docker Image + run: | + docker build -t ghcr.io/gansejunge/${{ env.IMAGE_NAME }}:${{ steps.get_tag.outputs.next }} . + docker push ghcr.io/gansejunge/${{ env.IMAGE_NAME }}:${{ steps.get_tag.outputs.next }} + + - name: Clone ops-deployment repo + uses: actions/checkout@v4 + with: + repository: notifier/ops-deployment + path: ./ops-deployment + token: ${{ secrets.BOT_TOKEN }} + + - name: Update backend-api-internal deployment + working-directory: ./ops-deployment + run: | + NEW_TAG=${{ steps.get_tag.outputs.next }} + NEW_IMAGE="${{ env.IMAGE_PATH }}:$NEW_TAG" + git config user.name "automation-bot" + git config user.email "dev@gansejunge.com" + + sed -i "s|ghcr.io/$GHCR_ORG/$IMAGE_NAME:[0-9]\+|$NEW_IMAGE|g" "$OPS_PATH" + + COMMIT_URL="https://git.gansejunge.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}" + git add $OPS_PATH + git commit -m "Update backend-api-internal image to version $NEW_TAG" -m "Linked build commit: $COMMIT_URL" + git push origin $OPS_BRANCH_BASE