From 51718b2bb8ce7d587378c983d4982f46dc262957 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 21 Apr 2026 16:35:32 -0500 Subject: [PATCH] feat: auto-bump on dev, merge to main via API for stable releases Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitea/workflows/release.yml | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0e5e71e..47885fd 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -104,15 +104,7 @@ jobs: INPUT_SUFFIX: ${{ steps.meta.outputs.suffix }} run: | BRANCH="${{ github.ref_name }}" - - # Skip auto-bump on main — version is already set before merge - if [ "$BRANCH" = "main" ]; then - CURRENT=$(sed -n 's/.*VERSION:[[:space:]]*\([0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\).*/\1/p' README.md 2>/dev/null | head -1) - echo "On main — using current version ${CURRENT} (no bump)" - echo "version=${CURRENT}" >> "$GITHUB_OUTPUT" - echo "zip_name=${EXT_ELEMENT}-${CURRENT}${INPUT_SUFFIX}.zip" >> "$GITHUB_OUTPUT" - exit 0 - fi + GITEA_API="${GITEA_URL}/api/v1/repos/${{ github.repository }}" # Read current version from README.md CURRENT=$(sed -n 's/.*VERSION:[[:space:]]*\([0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\).*/\1/p' README.md 2>/dev/null | head -1) @@ -163,7 +155,7 @@ jobs: PYEOF fi - # Commit bump + # Commit bump to current branch git config --local user.email "gitea-actions[bot]@mokoconsulting.tech" git config --local user.name "gitea-actions[bot]" git remote set-url origin "https://jmiller:${GA_TOKEN}@git.mokoconsulting.tech/${{ github.repository }}.git" @@ -174,6 +166,20 @@ jobs: git push } + # For stable releases from dev: merge dev → main via Gitea API + if [ "$INPUT_STABILITY" = "stable" ] && [ "$BRANCH" != "main" ]; then + echo "Merging ${BRANCH} → main via Gitea API..." + curl -sf -X POST -H "Authorization: token ${GA_TOKEN}" \ + -H "Content-Type: application/json" \ + "${GITEA_API}/merges" \ + -d "$(jq -n \ + --arg base "main" \ + --arg head "${BRANCH}" \ + --arg msg "chore(release): merge ${BRANCH} for stable ${NEW_VERSION} [skip ci]" \ + '{base: $base, head: $head, merge_message_field: $msg}' + )" > /dev/null 2>&1 || echo "Merge API call failed — may need manual merge" + fi + echo "version=${NEW_VERSION}" >> "$GITHUB_OUTPUT" echo "zip_name=${EXT_ELEMENT}-${NEW_VERSION}${INPUT_SUFFIX}.zip" >> "$GITHUB_OUTPUT"