This commit is contained in:
@@ -3,7 +3,7 @@ name: Uniapp 自动化打包 CI/CD
|
|||||||
# 触发条件:可根据需求调整(如 push 到 main 分支、打 tag 时触发)
|
# 触发条件:可根据需求调整(如 push 到 main 分支、打 tag 时触发)
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ] # 分支触发
|
branches: [ prod ] # 分支触发
|
||||||
# tag:
|
# tag:
|
||||||
# - 'v*' # 版本 tag 触发(可选)
|
# - 'v*' # 版本 tag 触发(可选)
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
- name: 1. 检出项目代码
|
- name: 1. 检出项目代码
|
||||||
uses: http://git.missmoc.top/mocheng/checkout@v4 # Gitea 兼容的代码检出插件
|
uses: http://git.missmoc.top/mocheng/checkout@v4 # Gitea 兼容的代码检出插件
|
||||||
with:
|
with:
|
||||||
fetch-depth: 1 # 仅拉取最新代码,加速流程
|
fetch-depth: 0 # 仅拉取最新代码,加速流程
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# 步骤 2:安装 Node.js 环境(Uniapp 依赖 Node 处理项目依赖)
|
# 步骤 2:安装 Node.js 环境(Uniapp 依赖 Node 处理项目依赖)
|
||||||
@@ -42,19 +42,19 @@ jobs:
|
|||||||
########################################################################
|
########################################################################
|
||||||
# 步骤 4:下载并部署 HBuilderX CLI(若 Runner 未预装)
|
# 步骤 4:下载并部署 HBuilderX CLI(若 Runner 未预装)
|
||||||
########################################################################
|
########################################################################
|
||||||
- name: 4. 部署 HBuilderX CLI 到 /hbuilderxcli/HBuilderX
|
- name: 4. 部署 HBuilderX CLI 到 /hbuildcli/HBuilderX
|
||||||
run: |
|
run: |
|
||||||
# 创建 CLI 目标目录
|
# 创建 CLI 目标目录
|
||||||
# sudo mkdir -p /hbuilderxcli/HBuilderX
|
# sudo mkdir -p /hbuildcli/HBuilderX
|
||||||
# 下载 HBuilderX Linux 完整版(版本 ≥3.1.5,可替换为最新版)
|
# 下载 HBuilderX Linux 完整版(版本 ≥3.1.5,可替换为最新版)
|
||||||
# wget -O hbuilderx.zip https://download1.dcloud.net.cn/download/HBuilderX.4.0.14.20240528.full.zip
|
# wget -O hbuilderx.zip https://download1.dcloud.net.cn/download/HBuilderX.4.0.14.20240528.full.zip
|
||||||
# 解压到目标目录
|
# 解压到目标目录
|
||||||
# unzip -q hbuilderx.zip -d /hbuilderxcli/HBuilderX
|
# unzip -q hbuilderx.zip -d /hbuildcli/HBuilderX
|
||||||
# 赋予 CLI 执行权限
|
# 赋予 CLI 执行权限
|
||||||
sudo chmod +x /hbuilderxcli/HBuilderX/cli
|
sudo chmod +x /hbuildcli/HBuilderX/cli
|
||||||
# 验证 CLI 版本(确保部署成功)
|
# 验证 CLI 版本(确保部署成功)
|
||||||
/hbuilderxcli/HBuilderX/cli -v
|
/hbuildcli/HBuilderX/cli -v
|
||||||
echo "HBuilderX CLI 部署完成,路径:/hbuilderxcli/HBuilderX/cli"
|
echo "HBuilderX CLI 部署完成,路径:/hbuildcli/HBuilderX/cli"
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# 步骤 5:HBuilderX 密钥登录(安全读取账户信息)
|
# 步骤 5:HBuilderX 密钥登录(安全读取账户信息)
|
||||||
@@ -64,7 +64,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "开始登录 HBuilderX 账户..."
|
echo "开始登录 HBuilderX 账户..."
|
||||||
# 执行登录命令(读取 Gitea Secrets 中的账户密码)
|
# 执行登录命令(读取 Gitea Secrets 中的账户密码)
|
||||||
LOGIN_OUTPUT=$(/hbuilderxcli/HBuilderX/cli user login --username ${{ secrets.HBUILDERX_USERNAME }} --password ${{ secrets.HBUILDERX_PASSWORD }})
|
LOGIN_OUTPUT=$(/hbuildcli/HBuilderX/cli user login --username ${{ secrets.HBUILDERX_USERNAME }} --password ${{ secrets.HBUILDERX_PASSWORD }})
|
||||||
# 打印登录输出(便于调试,无敏感信息)
|
# 打印登录输出(便于调试,无敏感信息)
|
||||||
echo "登录结果:$LOGIN_OUTPUT"
|
echo "登录结果:$LOGIN_OUTPUT"
|
||||||
# 验证登录是否成功(根据文档,成功返回 "0:user login:OK")
|
# 验证登录是否成功(根据文档,成功返回 "0:user login:OK")
|
||||||
@@ -84,13 +84,13 @@ jobs:
|
|||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo "正在查询打包队列状态..."
|
echo "正在查询打包队列状态..."
|
||||||
# (可选)提前查询队列(部分场景下 HBuilderX 会返回排队信息)
|
# (可选)提前查询队列(部分场景下 HBuilderX 会返回排队信息)
|
||||||
/hbuilderxcli/HBuilderX/cli publish --platform android --query-queue
|
/hbuildcli/HBuilderX/cli publish --platform android --query-queue
|
||||||
echo "========================================"
|
echo "========================================"
|
||||||
echo "开始执行打包(实时输出进度)..."
|
echo "开始执行打包(实时输出进度)..."
|
||||||
# 执行打包命令(根据目标平台调整 --platform 参数,支持 android/ios/h5 等)
|
# 执行打包命令(根据目标平台调整 --platform 参数,支持 android/ios/h5 等)
|
||||||
# --project:指定项目根目录(当前检出目录)
|
# --project:指定项目根目录(当前检出目录)
|
||||||
# --output:指定产物输出目录(便于后续归档)
|
# --output:指定产物输出目录(便于后续归档)
|
||||||
BUILD_OUTPUT=$(/hbuilderxcli/HBuilderX/cli publish \
|
BUILD_OUTPUT=$(/hbuildcli/HBuilderX/cli publish \
|
||||||
--platform android \
|
--platform android \
|
||||||
--project ./ \
|
--project ./ \
|
||||||
--output ./unpackage/dist/build/android \
|
--output ./unpackage/dist/build/android \
|
||||||
@@ -123,7 +123,7 @@ jobs:
|
|||||||
- name: 8. HBuilderX 账户登出
|
- name: 8. HBuilderX 账户登出
|
||||||
run: |
|
run: |
|
||||||
echo "开始登出 HBuilderX 账户..."
|
echo "开始登出 HBuilderX 账户..."
|
||||||
LOGOUT_OUTPUT=$(/hbuilderxcli/HBuilderX/cli user logout)
|
LOGOUT_OUTPUT=$(/hbuildcli/HBuilderX/cli user logout)
|
||||||
echo "登出结果:$LOGOUT_OUTPUT"
|
echo "登出结果:$LOGOUT_OUTPUT"
|
||||||
# 验证登出是否成功(根据文档,成功返回 "0:user logout:OK")
|
# 验证登出是否成功(根据文档,成功返回 "0:user logout:OK")
|
||||||
if [[ $(echo "$LOGOUT_OUTPUT" | grep -c "0:user logout:OK") -eq 0 ]]; then
|
if [[ $(echo "$LOGOUT_OUTPUT" | grep -c "0:user logout:OK") -eq 0 ]]; then
|
||||||
|
Reference in New Issue
Block a user