Files
s-ui/.github/workflows/sync-upstream.yml
T
2026-05-25 20:57:31 +00:00

63 lines
1.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Sync upstream
on:
schedule:
# 每天北京时间 04:00 同步(UTC 20:00
- cron: '0 20 * * *'
workflow_dispatch:
permissions:
contents: write
concurrency:
group: sync-upstream
cancel-in-progress: false
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout fork
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Configure git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Add upstream remote
run: |
git remote add upstream https://github.com/alireza0/s-ui.git
git fetch upstream main
- name: Sync main from upstream
run: |
set -euo pipefail
# Preserve fork workflows. GITHUB_TOKEN cannot push commits that
# create/update workflow files from upstream (for example docker.yml).
tmp_workflows="$(mktemp -d)"
if [ -d .github/workflows ]; then
cp -a .github/workflows/. "$tmp_workflows/"
fi
# Make the fork match upstream exactly, avoiding merge/rebase conflicts
# from divergent local history.
git checkout main
git reset --hard upstream/main
rm -rf .github/workflows
mkdir -p .github/workflows
cp -a "$tmp_workflows/." .github/workflows/
git add .github/workflows
if git diff --cached --quiet; then
echo "Fork is already in sync with upstream."
exit 0
fi
git commit -m "Sync upstream and keep fork workflow"
git push --force-with-lease origin main