From b44949d362b9752d35819c002a0631d6cc5a68e0 Mon Sep 17 00:00:00 2001 From: Dmitrii Safronov Date: Sat, 6 Dec 2025 17:43:28 +0400 Subject: [PATCH] chore(workflow): improve main branch synchronization logic - Refined the GitHub Actions workflow for synchronizing the main branch with the release branch. Updated fetch commands to ensure the latest state is retrieved and enhanced checks for fast-forwarding or rebasing. This ensures a more robust and accurate update process for the main branch after releases. Signed-off-by: Dmitrii Safronov --- .github/workflows/release-stable.yaml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release-stable.yaml b/.github/workflows/release-stable.yaml index a217572..3f509ad 100644 --- a/.github/workflows/release-stable.yaml +++ b/.github/workflows/release-stable.yaml @@ -42,25 +42,24 @@ jobs: # Fetch latest state after semantic-release pushed commits # This ensures we get all commits that semantic-release created - git fetch origin release:release - git fetch origin main:main + git fetch origin - # Check if main is already up to date - if git diff --quiet main release; then + # Check if main is already up to date with release + if git diff --quiet origin/main origin/release; then echo "main is already up to date with release" exit 0 fi # Check if main is ancestor of release (can fast-forward) - if git merge-base --is-ancestor main release; then + if git merge-base --is-ancestor origin/main origin/release; then echo "Fast-forwarding main to release" - git checkout main - git merge --ff-only release + git checkout -B main origin/main + git merge --ff-only origin/release git push origin main else echo "Rebasing main onto release (force-with-lease required)" - git checkout main - git rebase release + git checkout -B main origin/main + git rebase origin/release # Use --force-with-lease for safety: only push if remote hasn't changed git push --force-with-lease origin main fi