63 lines
2 KiB
YAML
63 lines
2 KiB
YAML
|
|
# ⚠️ 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 }}
|