57 lines
1.6 KiB
YAML
57 lines
1.6 KiB
YAML
name: 阿里云仓库合并流水线(合并模式)
|
||
|
||
# 注意:此workflow使用合并模式(git merge --no-ff),会保留目标仓库的更改历史
|
||
# 如果遇到合并冲突,会跳过该仓库并继续处理其他仓库
|
||
# 如果需要强制同步(镜像模式),请使用 aliyun-repo-sync.yml workflow
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- master
|
||
paths:
|
||
- 'aliyun_repos.yaml'
|
||
- '.gitea/workflows/aliyun-repo-merge.yml'
|
||
workflow_dispatch:
|
||
schedule:
|
||
# 每天凌晨2点执行
|
||
- cron: '0 2 * * 0'
|
||
|
||
env:
|
||
CONFIG_FILE: 'aliyun_repos.yaml'
|
||
|
||
jobs:
|
||
merge-repositories:
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: 签出配置仓库
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 1
|
||
|
||
- name: 配置 Git
|
||
run: |
|
||
git config --global user.name "gitea-runner"
|
||
git config --global user.email "actions@gitea.fjy8018.top"
|
||
git config --global init.defaultBranch master
|
||
|
||
- name: 安装依赖
|
||
run: |
|
||
apt-get update
|
||
apt-get install -y python3-yaml jq
|
||
|
||
- name: 验证配置文件
|
||
run: |
|
||
if [ ! -f "${{ env.CONFIG_FILE }}" ]; then
|
||
echo "错误: 配置文件 ${{ env.CONFIG_FILE }} 不存在!"
|
||
exit 1
|
||
fi
|
||
echo "✓ 配置文件已找到"
|
||
|
||
- name: 从配置文件中提取仓库并合并
|
||
env:
|
||
UPSTREAM_USERNAME: ${{ secrets.CODEUP_USERNAME }}
|
||
UPSTREAM_TOKEN: ${{ secrets.CODEUP_PASSWORD }}
|
||
TARGET_USERNAME: ${{ secrets.TARGET_USERNAME }}
|
||
TARGET_TOKEN: ${{ secrets.TARGET_TOKEN }}
|
||
run: python3 merge_repos.py |