Skip to content

Commit 92f2265

Browse files
committed
ci(github-actions): 重构同步工作流为可重用外部工作流
将原本冗长的多平台同步任务替换为引用外部仓库的可重用工作流,简化维护并提高一致性。移除了对 GitLink、GitLab、AtomGit、GitCode 和 Framagit 的直接同步支持,仅保留 Gitee 同步功能。现在工作流会监听所有分支推送(除标签外)和 "Publish Release" 工作流的完成事件,并支持手动触发。
1 parent 8a2b7ff commit 92f2265

File tree

1 file changed

+19
-279
lines changed

1 file changed

+19
-279
lines changed

.github/workflows/sync.yml

Lines changed: 19 additions & 279 deletions
Original file line numberDiff line numberDiff line change
@@ -1,288 +1,28 @@
1-
name: Sync Github To Image
1+
name: Sync Github To Image (External)
22

33
on:
44
push:
5-
branches: [main]
5+
branches:
6+
- '**'
7+
tags-ignore:
8+
- '**'
9+
workflow_run:
10+
workflows: ["Publish Release"] # 监听的工作流名称
11+
types:
12+
- completed # 监听完成事件
613
#schedule:
714
# 定时任务,每天 UTC 时间 0 点运行
815
#- cron: "0 0 * * *"
9-
#workflow_dispatch:
16+
workflow_dispatch:
1017

1118
jobs:
12-
sync-gitlink:
13-
runs-on: ubuntu-latest
14-
15-
steps:
16-
- name: Checkout code
17-
uses: actions/checkout@v4
18-
with:
19-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
20-
21-
- name: Set up Git user
22-
run: |
23-
git config --global user.email "wangfj11@foxmail.com"
24-
git config --global user.name "AlianBlank"
25-
26-
- name: Set SSH
27-
run: |
28-
mkdir -p ~/.ssh
29-
echo "${{ secrets.GITLINK_ID_RSA }}" >> ~/.ssh/id_rsa
30-
chmod 600 ~/.ssh/id_rsa
31-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
32-
# 信任域名
33-
ssh-keyscan -H code.gitlink.org.cn >> ~/.ssh/known_hosts
34-
35-
# 查看当前分支
36-
- name: Check current branch
37-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
38-
39-
# 查看远端 地址
40-
- name: echo git url
41-
run: echo git@code.gitlink.org.cn:${{ github.Repository }}.git
42-
43-
# 添加远端
44-
- name: add remote url
45-
run: git remote add gitlink "git@code.gitlink.org.cn:${{ github.Repository }}.git"
46-
47-
# 获取
48-
- name: fetch
49-
run: git fetch --prune gitlink --tags --verbose
50-
51-
# 拉取
52-
- name: pull and push
53-
run: |
54-
if [ "${{ github.ref_name }}" ]; then
55-
git checkout ${{ github.ref_name }}
56-
git pull --progress -v --no-rebase gitlink ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
57-
git push -u gitlink ${{ github.ref_name }} --tags --verbose
58-
fi
59-
60-
sync-gitlab:
61-
runs-on: ubuntu-latest
62-
63-
steps:
64-
- name: Checkout code
65-
uses: actions/checkout@v4
66-
with:
67-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
68-
69-
- name: Set up Git user
70-
run: |
71-
git config --global user.email "wangfj11@foxmail.com"
72-
git config --global user.name "AlianBlank"
73-
74-
- name: Set SSH
75-
run: |
76-
mkdir -p ~/.ssh
77-
echo "${{ secrets.GITLAB_ID_RSA }}" >> ~/.ssh/id_rsa
78-
chmod 600 ~/.ssh/id_rsa
79-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
80-
# 信任域名
81-
ssh-keyscan -H gitlab.com >> ~/.ssh/known_hosts
82-
# 查看当前分支
83-
- name: Check current branch
84-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
85-
# 查看远端 地址
86-
- name: echo git url
87-
run: echo git@gitlab.com:${{ github.Repository }}.git
88-
89-
# 添加远端
90-
- name: add remote url
91-
run: git remote add gitlab "git@gitlab.com:${{ github.Repository }}.git"
92-
93-
# 获取
94-
- name: fetch
95-
run: git fetch --prune gitlab --tags --verbose
96-
97-
# 拉取
98-
- name: pull and push
99-
run: |
100-
if [ "${{ github.ref_name }}" ]; then
101-
git checkout ${{ github.ref_name }}
102-
git pull --progress -v --no-rebase gitlab ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
103-
git push -u gitlab ${{ github.ref_name }} --tags --verbose
104-
fi
105-
10619
sync-gitee:
107-
runs-on: ubuntu-latest
108-
109-
steps:
110-
- name: Checkout code
111-
uses: actions/checkout@v4
112-
with:
113-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
114-
115-
- name: Set up Git user
116-
run: |
117-
git config --global user.email "wangfj11@foxmail.com"
118-
git config --global user.name "AlianBlank"
119-
120-
- name: Set SSH
121-
run: |
122-
mkdir -p ~/.ssh
123-
echo "${{ secrets.GITEE_ID_RSA }}" >> ~/.ssh/id_rsa
124-
chmod 600 ~/.ssh/id_rsa
125-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
126-
# 信任域名
127-
ssh-keyscan -H gitee.com >> ~/.ssh/known_hosts
128-
# 查看当前分支
129-
- name: Check current branch
130-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
131-
# 查看远端 地址
132-
- name: echo git url
133-
run: echo git@gitee.com:${{ github.Repository }}.git
134-
135-
# 添加远端
136-
- name: add remote url
137-
run: git remote add gitee "git@gitee.com:${{ github.Repository }}.git"
138-
139-
# 获取
140-
- name: fetch
141-
run: git fetch --prune gitee --tags --verbose
142-
143-
# 拉取
144-
- name: pull and push
145-
run: |
146-
if [ "${{ github.ref_name }}" ]; then
147-
git checkout ${{ github.ref_name }}
148-
git pull --progress -v --no-rebase gitee ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
149-
git push -u gitee ${{ github.ref_name }} --tags --verbose
150-
fi
151-
152-
sync-atomgit:
153-
runs-on: ubuntu-latest
154-
155-
steps:
156-
- name: Checkout code
157-
uses: actions/checkout@v4
158-
with:
159-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
160-
161-
- name: Set up Git user
162-
run: |
163-
git config --global user.email "wangfj11@foxmail.com"
164-
git config --global user.name "AlianBlank"
165-
166-
- name: Set SSH
167-
run: |
168-
mkdir -p ~/.ssh
169-
echo "${{ secrets.ATOMGIT_ID_RSA }}" >> ~/.ssh/id_rsa
170-
chmod 600 ~/.ssh/id_rsa
171-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
172-
# 信任域名
173-
ssh-keyscan -H atomgit.com >> ~/.ssh/known_hosts
174-
# 查看当前分支
175-
- name: Check current branch
176-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
177-
# 查看远端 地址
178-
- name: echo git url
179-
run: echo git@atomgit.com:${{ github.Repository }}.git
180-
181-
# 添加远端
182-
- name: add remote url
183-
run: git remote add atomgit "git@atomgit.com:${{ github.Repository }}.git"
184-
185-
# 获取
186-
- name: fetch
187-
run: git fetch --prune atomgit --tags --verbose
188-
189-
# 拉取
190-
- name: pull and push
191-
run: |
192-
if [ "${{ github.ref_name }}" ]; then
193-
git checkout ${{ github.ref_name }}
194-
git pull --progress -v --no-rebase atomgit ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
195-
git push -u atomgit ${{ github.ref_name }} --tags --verbose
196-
fi
197-
198-
sync-gitcode:
199-
runs-on: ubuntu-latest
200-
201-
steps:
202-
- name: Checkout code
203-
uses: actions/checkout@v4
204-
with:
205-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
206-
207-
- name: Set up Git user
208-
run: |
209-
git config --global user.email "wangfj11@foxmail.com"
210-
git config --global user.name "AlianBlank"
211-
212-
- name: Set SSH
213-
run: |
214-
mkdir -p ~/.ssh
215-
echo "${{ secrets.GITCODE_ID_RSA }}" >> ~/.ssh/id_rsa
216-
chmod 600 ~/.ssh/id_rsa
217-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
218-
# 信任域名
219-
ssh-keyscan -H gitcode.net >> ~/.ssh/known_hosts
220-
# 查看当前分支
221-
- name: Check current branch
222-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
223-
# 查看远端 地址
224-
- name: echo git url
225-
run: echo git@gitcode.net:${{ github.Repository }}.git
226-
227-
# 添加远端
228-
- name: add remote url
229-
run: git remote add gitcode "git@gitcode.net:${{ github.Repository }}.git"
230-
231-
# 获取
232-
- name: fetch
233-
run: git fetch --prune gitcode --tags --verbose
234-
235-
# 拉取
236-
- name: pull and push
237-
run: |
238-
if [ "${{ github.ref_name }}" ]; then
239-
git checkout ${{ github.ref_name }}
240-
git pull --progress -v --no-rebase gitcode ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
241-
git push -u gitcode ${{ github.ref_name }} --tags --verbose
242-
fi
243-
244-
sync-framagit:
245-
runs-on: ubuntu-latest
246-
247-
steps:
248-
- name: Checkout code
249-
uses: actions/checkout@v4
250-
with:
251-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
252-
253-
- name: Set up Git user
254-
run: |
255-
git config --global user.email "wangfj11@foxmail.com"
256-
git config --global user.name "AlianBlank"
257-
258-
- name: Set SSH
259-
run: |
260-
mkdir -p ~/.ssh
261-
echo "${{ secrets.FRAMAGIT_ID_RSA }}" >> ~/.ssh/id_rsa
262-
chmod 600 ~/.ssh/id_rsa
263-
eval $(ssh-agent -s) && ssh-add ~/.ssh/id_rsa
264-
# 信任域名
265-
ssh-keyscan -H framagit.org >> ~/.ssh/known_hosts
266-
# 查看当前分支
267-
- name: Check current branch
268-
run: echo 当前分支:${{ github.ref_name }} ${{ github.Repository }}
269-
# 查看远端 地址
270-
- name: echo git url
271-
run: echo git@framagit.org:${{ github.Repository }}.git
272-
273-
# 添加远端
274-
- name: add remote url
275-
run: git remote add framagit "git@framagit.org:${{ github.Repository }}.git"
276-
277-
# 获取
278-
- name: fetch
279-
run: git fetch --prune framagit --tags --verbose
280-
281-
# 拉取
282-
- name: pull and push
283-
run: |
284-
if [ "${{ github.ref_name }}" ]; then
285-
git checkout ${{ github.ref_name }}
286-
git pull --progress -v --no-rebase framagit ${{ github.ref_name }} --tags --verbose || echo 远端不存在${{ github.ref_name }}分支;
287-
git push -u framagit ${{ github.ref_name }} --tags --verbose
288-
fi
20+
# 引用外部仓库的可重用工作流
21+
# 格式: {owner}/{repo}/.github/workflows/{filename}@{ref}
22+
uses: GameFrameX/public-github-actions/.github/workflows/sync.yml@main
23+
with:
24+
# 传递参数给外部工作流
25+
target_branch: ${{ github.ref_name }}
26+
repository_name: ${{ github.repository }}
27+
# 组织级别已配置密钥,可以使用 inherit 继承所有密钥
28+
secrets: inherit

0 commit comments

Comments
 (0)