Skip to content

Commit 6d1eb1f

Browse files
committed
ci: refactor workflow files to use external reusable workflows
- Replace publish-release.yml and sync.yml with references to external repository reusable workflows - Simplify configuration by removing duplicate steps and permission declarations - Use inherit to inherit organization-level secret configuration
1 parent 2719f6d commit 6d1eb1f

File tree

2 files changed

+28
-332
lines changed

2 files changed

+28
-332
lines changed

.github/workflows/publish-release.yml

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,18 @@ name: Publish Release
22

33
on:
44
push:
5-
tags:
6-
- '*'
7-
# branches: [main]
8-
#schedule:
9-
# 定时任务,每天 UTC 时间 0 点运行
10-
#- cron: "0 0 * * *"
11-
12-
#workflow_dispatch:
13-
permissions: # Global permissions configuration starts here
14-
contents: read # 'read' access to repository contents
15-
pull-requests: write # 'write' access to pull requests
5+
branches: [main]
6+
workflow_dispatch:
167

178
jobs:
18-
tags:
19-
runs-on: ubuntu-latest
20-
21-
permissions:
22-
contents: write
23-
steps:
24-
- name: Checkout code
25-
uses: actions/checkout@v4
26-
with:
27-
fetch-depth: 0 # 为了 git pull --unshallow,我们需要获取所有的提交历史
28-
29-
- name: Set up Git user
30-
run: |
31-
git config --global user.email "[email protected]"
32-
git config --global user.name "AlianBlank"
33-
34-
- name: "✏️ Generate release changelog"
35-
uses: heinrichreimer/[email protected]
36-
with:
37-
token: ${{ secrets.GITHUB_TOKEN }}
38-
39-
- name: Commit CHANGELOG.md
40-
run: |
41-
git add CHANGELOG.md
42-
git commit -m "[修改]1.修改更新日志"
43-
44-
- name: change-version-by-tag
45-
uses: AlianBlank/[email protected]
46-
with:
47-
version: ${{ github.ref_name }}
48-
49-
- name: Push changes
50-
uses: ad-m/github-push-action@master
51-
with:
52-
force: true
53-
tags: true
9+
publish-release:
10+
# 引用外部仓库的可重用工作流
11+
# 权限由外部工作流统一配置,无需在调用方声明
12+
uses: GameFrameX/public-github-actions/.github/workflows/publish-release.yml@main
13+
with:
14+
# 传递tag名称给外部工作流
15+
tag_name: ${{ github.ref_name }}
16+
# 传递仓库名称
17+
repository_name: ${{ github.repository }}
18+
# 组织级别已配置密钥,可以使用 inherit 继承所有密钥
19+
secrets: inherit

.github/workflows/sync.yml

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

33
on:
4+
push:
5+
branches:
6+
- '**'
7+
tags-ignore:
8+
- '**'
49
workflow_run:
510
workflows: ["Publish Release"] # 监听的工作流名称
611
types:
712
- completed # 监听完成事件
8-
push:
9-
branches: [main]
1013
#schedule:
1114
# 定时任务,每天 UTC 时间 0 点运行
1215
#- cron: "0 0 * * *"
1316
workflow_dispatch:
1417

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