chore: Add GitHub Actions workflow to sync with upstream

This workflow automatically syncs the repository with the upstream every day at 3 AM UTC and allows manual triggering.
This commit is contained in:
likanug 2025-12-10 14:56:55 +08:00 committed by GitHub
parent 188a8f88c3
commit 38e1f4b58d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

49
.github/workflows/sync-upstream.yml vendored Normal file
View file

@ -0,0 +1,49 @@
name: Sync Upstream
on:
workflow_dispatch: # 手动触发
schedule:
- cron: "0 11 * * *" # 每天(utc)凌晨3点自动同步可自行设置
permissions:
contents: write
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout your repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # 必须拉取完整历史
token: ${{ secrets.GITHUB_TOKEN }}
# 配置 Git 信息
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# 添加 upstream如果不存在
- name: Add upstream remote
run: |
git remote add upstream https://github.com/PKUFlyingPig/cs-self-learning || true
git fetch upstream
# # 方法1merge推荐最稳定
# - name: Merge upstream into main
# run: |
# git checkout master
# git merge upstream/master --no-edit || true
# 方法2rebase更干净的历史
- name: Rebase onto upstream
run: |
git checkout master
git rebase upstream/master || true
# 推送到你的仓库
- name: Push changes
run: |
git push origin master