61 lines
1.9 KiB
YAML
61 lines
1.9 KiB
YAML
name: Sync Upstream (Frontend)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
sync-upstream:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout private repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Get Current Date and Day
|
|
id: date
|
|
run: echo "BRANCH_NAME=shadow/$(date +%A-%Y-%m-%d)" >> $GITHUB_ENV
|
|
|
|
- name: Add Upstream Remote and Fetch Changes
|
|
run: |
|
|
git remote add upstream https://github.com/bluewave-labs/checkmate.git || true
|
|
git fetch upstream develop --prune
|
|
if ! git show-ref --quiet refs/remotes/upstream/develop; then
|
|
echo "ERROR: upstream/develop not found"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Ensure Local Develop is Up-to-Date
|
|
run: |
|
|
git checkout develop
|
|
git pull origin develop --prune
|
|
|
|
- name: Create Shadow Branch
|
|
run: |
|
|
git checkout -b ${{ env.BRANCH_NAME }} develop
|
|
|
|
- name: Identify New Commits
|
|
id: check_commits
|
|
run: |
|
|
NEW_COMMITS=$(git log develop..upstream/develop --pretty=format:"%H" | wc -l)
|
|
echo "New commits: $NEW_COMMITS"
|
|
if [ "$NEW_COMMITS" -eq 0 ]; then
|
|
echo "No new commits. Exiting."
|
|
exit 0
|
|
fi
|
|
|
|
- name: Cherry-pick New Commits
|
|
run: |
|
|
git cherry-pick develop..upstream/develop || (git cherry-pick --abort && exit 1)
|
|
git push origin ${{ env.BRANCH_NAME }}
|
|
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v5
|
|
with:
|
|
title: "Sync Upstream (Frontend) - ${{ env.BRANCH_NAME }}"
|
|
body: "Automated upstream sync for frontend repository. Please review and merge."
|
|
branch: ${{ env.BRANCH_NAME }}
|
|
base: develop
|
|
labels: "sync, upstream"
|
|
reviewers: "ridvankaratas, ajhollid"
|