54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
name: 阿里云仓库同步流水线(强制同步/镜像模式)
|
||
|
||
# 注意:此workflow使用强制同步模式(git reset --hard),会覆盖目标仓库的所有更改
|
||
# 如果需要使用合并模式(merge --no-ff),请使用 aliyun-repo-merge.yml workflow
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- master
|
||
paths:
|
||
- 'aliyun_repos.yaml'
|
||
- '.gitea/workflows/aliyun-repo-sync.yml'
|
||
workflow_dispatch:
|
||
|
||
env:
|
||
CONFIG_FILE: 'aliyun_repos.yaml'
|
||
|
||
jobs:
|
||
sync-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 sync_repos.py
|