diff --git a/.gitea/workflows/render-manifests.yaml b/.gitea/workflows/render-manifests.yaml index f54f434a0..c32ff1e8e 100644 --- a/.gitea/workflows/render-manifests.yaml +++ b/.gitea/workflows/render-manifests.yaml @@ -68,6 +68,8 @@ jobs: done done + git restore --staged ${{ gitea.workspace }}/clusters/$cluster/helm + # - name: Create Pull Request # id: pull-request # uses: peter-evans/create-pull-request@v7 @@ -96,6 +98,7 @@ jobs: run: | if git status --porcelain | grep -q .; then echo ">> Changes detected" + git status --porcelain echo "changes-detected=true" >> $GITEA_OUTPUT else echo ">> No changes detected, skipping PR creation" @@ -109,16 +112,19 @@ jobs: BRANCH_NAME="auto/update-manifests-$(date +%s)" # Configure Git + echo ">> Configure git to use gitea-bot as user ..." git config user.name "gitea-bot" git config user.email "gitea-bot@alexlebens.net" # Create a new branch and stage all changes + echo ">> Creating and commiting to $BRANCH_NAME ..." 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 }}" + echo ">> Pushing changes to $REPO_URL ..." git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" $BRANCH_NAME echo "HEAD_BRANCH=$BRANCH_NAME" >> $GITEA_OUTPUT @@ -134,19 +140,37 @@ jobs: REPO: ${{ gitea.repository_name }} HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }} run: | + API_ENDPOINT="${GITEA_URL}/api/v1/repos/${OWNER}/${REPO}/pulls" + + PAYLOAD=$(cat <<-EOF + { + "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.", + } + EOF + ) + 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." + curl -X POST \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + --data "${PAYLOAD}" \ + "${API_ENDPOINT}" echo "pull-request-operation=created" >> $GITEA_OUTPUT + + - name: Cleanup Branch + if: failure() && steps.create-pull-request.outcome == 'failure' + env: + HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }} + run: | + echo ">> Removing branch: ${HEAD_BRANCH}" + git push origin --delete ${HEAD_BRANCH} + # - name: ntfy Created # uses: niniyas/ntfy-action@master # if: steps.create-pull-request.outputs.pull-request-operation == 'created'