Skip to content

Commit 1c630d3

Browse files
committed
Use zh step name and stabilize pre URL for deb
1 parent 7543e67 commit 1c630d3

File tree

1 file changed

+33
-38
lines changed

1 file changed

+33
-38
lines changed

.github/workflows/pkg-DEB.yml

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# Build and publish DEB packages
1010
# ---------------------------------------------------------------
1111

12-
name: Build and Publish DEB package
12+
name: 构建发布deb包
1313

1414
on:
1515
release:
@@ -24,16 +24,17 @@ on:
2424
default: '0.3.0' # 短暂时间内不可达到的最新版本号
2525

2626
jobs:
27-
build-deb:
27+
Build-deb:
28+
name: 构建deb包
2829
runs-on: ubuntu-latest
2930

3031
steps:
31-
- name: Checkout repo
32+
- name: 检出代码
3233
uses: actions/checkout@v4
3334
with:
3435
ref: gh-build
3536

36-
- name: 获取版本号 from tag or input
37+
- name: 获取版本号
3738
id: get_version
3839
run: |
3940
if [ "${{ github.event_name }}" = "release" ]; then
@@ -52,15 +53,16 @@ jobs:
5253
echo "version=$version" >> $GITHUB_OUTPUT
5354
echo "Version: $version"
5455
55-
- name: Validate version tag
56+
- name: 验证版本号
5657
run: |
5758
version="${{ steps.get_version.outputs.version }}"
59+
5860
if [[ ! $version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
5961
echo "Invalid version format: $version"
6062
exit 1
6163
fi
6264
63-
- name: Update debian/changelog with version
65+
- name: 更新 debian/changelog
6466
run: |
6567
version="${{ steps.get_version.outputs.version }}"
6668
@@ -77,93 +79,86 @@ jobs:
7779
7880
mv -f new_changelog ./debian/changelog
7981
80-
81-
- name: Install build dependencies
82+
- name: 安装构建依赖
8283
run: |
8384
sudo apt-get update
8485
sudo apt-get install -y debhelper devscripts build-essential fakeroot
8586
86-
- name: Build package
87+
- name: 构建
8788
run: |
8889
make build-deb
8990
90-
- name: Move package into dist
91+
- name: 移动构建产物到./dist和./dist-for-pre
9192
run: |
9293
version="${{ steps.get_version.outputs.version }}"
9394
94-
# Move the generated .deb file to a known location
95-
mkdir -p dist
95+
# 创建两个目录来存放构建产物(产物内容一样,只是文件名不一样)
96+
mkdir dist dist-for-pre
9697
find ./pkg -name "chsrc_${version}*.deb" -exec mv {} dist/ \;
98+
cp -r dist/ dist-for-pre/
9799
98-
# Rename to standardized format if needed
99-
cd dist
100-
for file in chsrc_${version}*.deb; do
101-
if [ -f "$file" ]; then
102-
new_name="chsrc_${version}-1_amd64.deb"
103-
if [ "$file" != "$new_name" ]; then
104-
mv "$file" "$new_name"
105-
fi
106-
break
107-
fi
100+
# 上传至 'pre' release 的文件名需要设置为 'latest', 从而稳定下载URL
101+
cd ./dist-for-pre
102+
for old_name in ./chsrc_${version}*.deb; do
103+
new_name="${old_name/${version}-1/latest-1}"
104+
mv "$old_name" "$new_name"
108105
done
109106
110-
- name: Verify package
107+
- name: 验证生成的deb包
111108
run: |
112109
version="${{ steps.get_version.outputs.version }}"
113110
ls -la dist/
114111
dpkg-deb --info dist/chsrc_${version}-1_amd64.deb
115112
dpkg-deb --contents dist/chsrc_${version}-1_amd64.deb
116113
117-
- name: Test package installation
114+
- name: 测试deb包能否正常安装
118115
run: |
119116
version="${{ steps.get_version.outputs.version }}"
120117
121-
# Install the package
122118
sudo dpkg -i dist/chsrc_${version}-1_amd64.deb || true
123119
sudo apt-get install -f -y || true
124120
125-
# Run DEB installation tests
126121
bash pkg/DEB/deb-installation-test.sh
127122
128-
129-
- name: Upload DEB artifact
123+
- name: 上传deb包到artifacts
130124
uses: actions/upload-artifact@v4
131125
with:
132-
name: chsrc-deb-amd64
126+
name: chsrc-deb-files
133127
path: dist/chsrc_*.deb
134128
retention-days: 30
135129

136-
- name: Upload to Releases (the newest release) if is release event
130+
- name: 上传附件到GitHub Releases(the newly created release)
137131
if: github.event_name == 'release'
138132
uses: softprops/action-gh-release@v2
139133
with:
140-
files: |
141-
dist/chsrc_*_amd64.deb
134+
# 用 * 省略版本号,以及指代各种架构
135+
files: dist/chsrc_*.deb
142136
token: ${{ secrets.UPLOAD_TO_GITHUB }}
143137

144-
- name: Upload to Releases (the 'pre' release) if is push event
138+
- name: 上传附件到GitHub Releases(the 'pre' release)
145139
if: github.event_name == 'push'
146140
uses: softprops/action-gh-release@v2
147141
with:
148142
tag_name: pre
149-
files: |
150-
dist/chsrc_*_amd64.deb
143+
# 用 * 指代各种架构
144+
files: dist-for-pre/chsrc_latest-1_*.deb
151145
token: ${{ secrets.UPLOAD_TO_GITHUB }}
152146

153147

154148

155149

156150

157-
create-repository-metadata:
158-
needs: build-deb
151+
Create-APT-repository:
152+
name: 创建APT仓库
153+
needs: Build-deb
159154
runs-on: ubuntu-latest
160155
if: github.event_name == 'release'
161156

162157
steps:
163158
- name: Download all artifacts
164159
uses: actions/download-artifact@v4
165160
with:
166-
pattern: chsrc-deb-*
161+
pattern: chsrc-deb-files
167162
merge-multiple: true
168163
path: ./debs
169164

0 commit comments

Comments
 (0)