From 61565975915e7fefb3c80f35896bd73ca5ff17e9 Mon Sep 17 00:00:00 2001 From: Alex Lebens Date: Sun, 30 Nov 2025 15:24:41 -0600 Subject: [PATCH] use manual workflow --- .gitea/workflows/render-manifests.yaml | 103 +++++++++++++++++++------ 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/.gitea/workflows/render-manifests.yaml b/.gitea/workflows/render-manifests.yaml index 3531642db..f54f434a0 100644 --- a/.gitea/workflows/render-manifests.yaml +++ b/.gitea/workflows/render-manifests.yaml @@ -12,6 +12,7 @@ on: env: CLUSTERS: cl01tl + BASE_BRANCH: manifests jobs: render-manifests-helm: @@ -30,7 +31,7 @@ jobs: - name: Render Helm Manifests run: | - for cluster in $CLUSTERS; do + for cluster in ${CLUSTERS}; do mkdir -p ${{ gitea.workspace }}/clusters/$cluster/manifests for chart_path in ${{ gitea.workspace }}/clusters/$cluster/helm/*; do @@ -67,32 +68,88 @@ jobs: done done - - name: Create Pull Request - id: pull-request - uses: peter-evans/create-pull-request@v7 - with: - token: ${{ secrets.BOT_TOKEN }} - add-paths: | - clusters/cl01tl/manifests/* - commit-message: "chore: Update manifests after chart change" - committer: gitea-bot - author: gitea-bot - branch: auto/update-manifests - branch-suffix: timestamp - base: manifests - title: "Manifest Update" - body: | - This PR contains the newly rendered Kubernetes manifests. + # - name: Create Pull Request + # id: pull-request + # uses: peter-evans/create-pull-request@v7 + # with: + # token: ${{ secrets.BOT_TOKEN }} + # add-paths: | + # clusters/cl01tl/manifests/* + # commit-message: "chore: Update manifests after chart change" + # committer: gitea-bot + # author: gitea-bot + # branch: auto/update-manifests + # branch-suffix: timestamp + # base: manifests + # title: "Manifest Update" + # body: | + # This PR contains the newly rendered Kubernetes manifests. - * Triggered by workflow run ${{ github.run_id }} - * Review the `files changed` tab for the full YAML diff. - labels: | - manifests - automated + # * Triggered by workflow run ${{ github.run_id }} + # * Review the `files changed` tab for the full YAML diff. + # labels: | + # manifests + # automated + + - name: Check for Changes + id: check-changes + run: | + if git status --porcelain | grep -q .; then + echo ">> Changes detected" + echo "changes-detected=true" >> $GITEA_OUTPUT + else + echo ">> No changes detected, skipping PR creation" + exit 0 + fi + + - name: Commit and Push Changes + id: commit-push + if: steps.check-changes.outputs.changes-detected == 'true' + run: | + BRANCH_NAME="auto/update-manifests-$(date +%s)" + + # Configure Git + git config user.name "gitea-bot" + git config user.email "gitea-bot@alexlebens.net" + + # Create a new branch and stage all changes + git checkout -b $BRANCH_NAME + git add . + git commit -m "chore: Update manifests after change" + + # Push the new branch to the remote repository + REPO_URL="${{ secrets.REPO_URL }}/${{ gitea.repository }}" + git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" $BRANCH_NAME + + echo "HEAD_BRANCH=$BRANCH_NAME" >> $GITEA_OUTPUT + echo "push=true" >> $GITEA_OUTPUT + + - name: Create Pull Request + id: create-pull-request + if: steps.commit-push.outputs.push == 'true' + env: + GITEA_TOKEN: ${{ secrets.BOT_TOKEN }} + GITEA_URL: ${{ secrets.REPO_URL }} + OWNER: ${{ gitea.repository_owner }} + REPO: ${{ gitea.repository_name }} + HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }} + run: | + echo ">> Creating PR from branch: ${HEAD_BRANCH} into ${BASE_BRANCH}" + + apt update && apt install tea + + tea pulls create \ + --repo "${OWNER}/${REPO}" \ + --head "${HEAD_BRANCH}" \ + --base "${BASE_BRANCH}" \ + --title "Automated Manifest Update: $(date +%F)" \ + --body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." + + echo "pull-request-operation=created" >> $GITEA_OUTPUT # - name: ntfy Created # uses: niniyas/ntfy-action@master - # if: steps.pull-request.outputs.pull-request-operation == 'created' + # if: steps.create-pull-request.outputs.pull-request-operation == 'created' # with: # url: "${{ secrets.NTFY_URL }}" # topic: "${{ secrets.NTFY_TOPIC }}"