Files
pezkuwi-wallet-utils/.github/workflows/sync-branches.yml
T

61 lines
1.7 KiB
YAML

name: Sync main and master branches
on:
push:
branches:
- main
- master
jobs:
sync:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Sync branches
run: |
# Get the branch that was pushed to
PUSHED_BRANCH="${GITHUB_REF#refs/heads/}"
if [ "$PUSHED_BRANCH" = "main" ]; then
TARGET_BRANCH="master"
else
TARGET_BRANCH="main"
fi
echo "Syncing $PUSHED_BRANCH → $TARGET_BRANCH"
# Fetch all branches
git fetch origin
# Check if target branch exists
if git show-ref --verify --quiet refs/remotes/origin/$TARGET_BRANCH; then
# Get commit hashes
PUSHED_COMMIT=$(git rev-parse origin/$PUSHED_BRANCH)
TARGET_COMMIT=$(git rev-parse origin/$TARGET_BRANCH)
if [ "$PUSHED_COMMIT" = "$TARGET_COMMIT" ]; then
echo "Branches are already in sync"
exit 0
fi
echo "Updating $TARGET_BRANCH to match $PUSHED_BRANCH"
git push origin origin/$PUSHED_BRANCH:refs/heads/$TARGET_BRANCH --force
else
echo "Creating $TARGET_BRANCH from $PUSHED_BRANCH"
git push origin origin/$PUSHED_BRANCH:refs/heads/$TARGET_BRANCH
fi
echo "Sync complete!"