singularity-forge/docs/dev/proposals/workflows/backmerge.yml

63 lines
2 KiB
YAML
Raw Normal View History

# ⚠️ SCAFFOLD ONLY — not active. See docs/proposals/rfc-gitops-branching-strategy.md
name: Back-merge Release Fixes
on:
push:
branches:
- "release/**"
jobs:
backmerge:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_PAT }}
- name: Back-merge to next
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
RELEASE_BRANCH="${GITHUB_REF#refs/heads/}"
echo "Back-merging $RELEASE_BRANCH → next"
git fetch origin next || {
echo "::warning::next branch does not exist — skipping back-merge"
exit 0
}
git checkout next
if git merge "origin/${RELEASE_BRANCH}" --no-edit; then
git push origin next
echo "## ✅ Back-merged \`$RELEASE_BRANCH\` → \`next\`" >> "$GITHUB_STEP_SUMMARY"
else
# Conflict — open a PR for manual resolution
git merge --abort
gh pr create \
--base next \
--head "${RELEASE_BRANCH}" \
--title "backmerge: ${RELEASE_BRANCH} → next (conflict)" \
--body "Automated back-merge from \`${RELEASE_BRANCH}\` to \`next\` has a merge conflict.
**Action required:** Resolve the conflict manually by checking out \`next\` and merging \`${RELEASE_BRANCH}\`:
\`\`\`bash
git checkout next
git merge origin/${RELEASE_BRANCH}
# resolve conflicts
git commit
git push origin next
\`\`\`" \
|| echo "::warning::PR creation failed"
echo "## ⚠️ Conflict merging \`$RELEASE_BRANCH\` → \`next\` — PR opened" >> "$GITHUB_STEP_SUMMARY"
fi
env:
GH_TOKEN: ${{ secrets.RELEASE_PAT }}