Skip to content

Commit db7fbf2

Browse files
ci(workflow): 优化 deb 包构建流程
- 将 .venv 创建和依赖安装提前到工作目录 - 直接复制 .venv 到 deb 包中,避免重复操作 - 简化脚本结构并添加步骤注释 - 修复 control 文件中描述格式问题
1 parent 89ffefa commit db7fbf2

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

.github/workflows/build.yml

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -85,35 +85,33 @@ jobs:
8585
set -e
8686
PKG="build/deb/${APP_NAME}"
8787
88-
# 目录结构
88+
# 1. 先在工作目录创建 .venv 并安装依赖
89+
uv sync
90+
91+
# 2. 创建 deb 包目录结构
8992
mkdir -p "${PKG}/opt/${APP_NAME}"
9093
mkdir -p "${PKG}/usr/bin"
9194
mkdir -p "${PKG}/usr/share/applications"
9295
mkdir -p "${PKG}/DEBIAN"
9396
94-
# 复制项目文件
97+
# 3. 复制项目文件(包括 .venv)
9598
cp *.py "${PKG}/opt/${APP_NAME}/"
96-
for item in icons htmls saying desktop_widgets font.ttf icon.ico introduce banner.png LICENSE README.md pyproject.toml; do
99+
for item in icons htmls saying desktop_widgets font.ttf icon.ico introduce banner.png LICENSE README.md pyproject.toml uv.lock; do
97100
[ -e "$item" ] && cp -r "$item" "${PKG}/opt/${APP_NAME}/"
98101
done
102+
# 复制 .venv
103+
cp -r .venv "${PKG}/opt/${APP_NAME}/"
99104
100-
# 用 uv 创建 venv 并安装依赖
101-
cd "${PKG}/opt/${APP_NAME}"
102-
uv venv venv
103-
uv sync
104-
cd -
105-
106-
# 启动脚本 (注意这里用 'EOF' 防止 $@ 被过早解析)
105+
# 4. 创建启动脚本(使用 .venv)
107106
cat > "${PKG}/usr/bin/${APP_NAME}" <<'EOF'
108107
#!/bin/bash
109108
export GI_TYPELIB_PATH=/usr/lib/x86_64-linux-gnu/girepository-1.0
110109
cd /opt/assignsticker
111-
exec /opt/assignsticker/venv/bin/python main.py "$@"
110+
exec /opt/assignsticker/.venv/bin/python main.py "$@"
112111
EOF
113-
114112
chmod +x "${PKG}/usr/bin/${APP_NAME}"
115113
116-
# Desktop Entry (使用 EOF 允许环境变量解析)
114+
# 5. 创建 Desktop Entry
117115
cat > "${PKG}/usr/share/applications/${APP_NAME}.desktop" <<EOF
118116
[Desktop Entry]
119117
Name=AssignSticker
@@ -126,10 +124,8 @@ jobs:
126124
StartupWMClass=assignsticker
127125
EOF
128126
129-
# 计算大小
127+
# 6. 计算大小并创建 control 文件
130128
SIZE=$(du -sk "${PKG}" | cut -f1)
131-
132-
# Control (修复了 Description 下方长描述的空格缩进问题)
133129
cat > "${PKG}/DEBIAN/control" <<EOF
134130
Package: ${APP_NAME}
135131
Version: ${APP_VERSION}
@@ -152,7 +148,7 @@ jobs:
152148
application for classroom use.
153149
EOF
154150
155-
# 打包
151+
# 7. 打包
156152
dpkg-deb --root-owner-group --build "${PKG}"
157153
mv "build/deb/${APP_NAME}.deb" "AssignSticker-${APP_VERSION}-amd64.deb"
158154

0 commit comments

Comments
 (0)