This commit is contained in:
81
.gitea/workflows/dev.yml
Normal file
81
.gitea/workflows/dev.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- prod
|
||||
jobs:
|
||||
Explore-Gitea-Actions:
|
||||
runs-on: ubuntu
|
||||
steps:
|
||||
- name: 拉取代码仓库
|
||||
uses: http://git.missmoc.top/mocheng/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # 只拉取最新的1个提交(浅克隆)
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: http://git.missmoc.top/mocheng/setup-node@v3
|
||||
with:
|
||||
node-version: 20.x
|
||||
|
||||
- name: 5. HBuilderX 账户登录
|
||||
id: hbx_login
|
||||
run: |
|
||||
echo "开始登录 HBuilderX 账户..."
|
||||
# 执行登录命令(读取 Gitea Secrets 中的账户密码)
|
||||
LOGIN_OUTPUT=$(/hbuildcli/HBuilderX/cli user login --username ${{ secrets.HBUILDERX_USERNAME }} --password ${{ secrets.HBUILDERX_PASSWORD }})
|
||||
# 打印登录输出(便于调试,无敏感信息)
|
||||
echo "登录结果:$LOGIN_OUTPUT"
|
||||
# 验证登录是否成功(根据文档,成功返回 "0:user login:OK")
|
||||
if [[ $? -ne 0 || $(echo "$LOGIN_OUTPUT" | grep -c "0:user login:OK") -eq 0 ]]; then
|
||||
echo "HBuilderX 登录失败!"
|
||||
exit 1 # 登录失败则终止 CI/CD 流程
|
||||
fi
|
||||
echo "HBuilderX 登录成功!"
|
||||
- name: 6. 打包 Uniapp(实时显示排队/进度)
|
||||
id: uniapp_build
|
||||
run: |
|
||||
echo "开始打包 Uniapp 项目,当前时间:$(date +%Y-%m-%d_%H:%M:%S)"
|
||||
echo "========================================"
|
||||
echo "正在查询打包队列状态..."
|
||||
# (可选)提前查询队列(部分场景下 HBuilderX 会返回排队信息)
|
||||
/hbuildcli/HBuilderX/cli publish --platform android --query-queue
|
||||
echo "========================================"
|
||||
echo "开始执行打包(实时输出进度)..."
|
||||
# 执行打包命令(根据目标平台调整 --platform 参数,支持 android/ios/h5 等)
|
||||
# --project:指定项目根目录(当前检出目录)
|
||||
# --output:指定产物输出目录(便于后续归档)
|
||||
BUILD_OUTPUT=$(/hbuildcli/HBuilderX/cli publish \
|
||||
--platform android \
|
||||
--project ./ \
|
||||
--output ./unpackage/dist/build/android \
|
||||
--progress # 强制输出打包进度(部分版本需显式指定)
|
||||
)
|
||||
# 实时打印打包日志(包含排队进度、编译进度等信息)
|
||||
echo "$BUILD_OUTPUT"
|
||||
# 验证打包是否成功(根据实际输出调整判断条件,示例:找 "打包成功" 关键字)
|
||||
if [[ $? -ne 0 || $(echo "$BUILD_OUTPUT" | grep -c "打包成功") -eq 0 ]]; then
|
||||
echo "Uniapp 打包失败!"
|
||||
exit 1
|
||||
fi
|
||||
echo "========================================"
|
||||
echo "Uniapp 打包完成!产物路径:./unpackage/dist/build/android"
|
||||
|
||||
- name: 7. 归档打包产物
|
||||
uses: https://gitea.com/actions/upload-artifact@v1 # Gitea 产物归档插件
|
||||
with:
|
||||
name: uniapp-android-build # 产物压缩包名称
|
||||
path: ./unpackage/dist/build/android # 产物目录(与步骤 6 的 --output 对应)
|
||||
retention-days: 7 # 产物保留时间(7 天,可调整)
|
||||
|
||||
post:
|
||||
- name: 8. HBuilderX 账户登出
|
||||
run: |
|
||||
echo "开始登出 HBuilderX 账户..."
|
||||
LOGOUT_OUTPUT=$(/hbuildcli/HBuilderX/cli user logout)
|
||||
echo "登出结果:$LOGOUT_OUTPUT"
|
||||
# 验证登出是否成功(根据文档,成功返回 "0:user logout:OK")
|
||||
if [[ $(echo "$LOGOUT_OUTPUT" | grep -c "0:user logout:OK") -eq 0 ]]; then
|
||||
echo "HBuilderX 登出异常(非致命错误,不终止流程)"
|
||||
else
|
||||
echo "HBuilderX 登出成功!"
|
||||
fi
|
Reference in New Issue
Block a user