build-linux-arm-appimage.yml 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. name: CI 自动构建linux arm electron 包,并保存结果
  2. on:
  3. push:
  4. branches:
  5. - master
  6. repository_dispatch:
  7. types:
  8. - webhook_trigger
  9. # 并发控制:自动取消旧的运行
  10. concurrency:
  11. group: build-linux-arm-${{ github.ref }}
  12. cancel-in-progress: true
  13. jobs:
  14. prepare-workspace:
  15. runs-on: self-hosted
  16. steps:
  17. - name: 检出代码
  18. uses: actions/checkout@v4
  19. - name: 设置 Node.js 环境
  20. uses: actions/setup-node@v4
  21. with:
  22. node-version: '20'
  23. - name: 安装依赖
  24. run: npm install --force
  25. build-h5-production:
  26. needs: prepare-workspace
  27. runs-on: [self-hosted,ARM64]
  28. steps:
  29. - name: 构建 H5 (生产环境)
  30. env:
  31. GH_TOKEN: ${{ secrets.GH_TOKEN }}
  32. TARO_API_URL: 'http://localhost:6001'
  33. TARO_MQTT_URL: 'ws://localhost:8083/mqtt'
  34. run: |
  35. echo "当前操作系统平台: $(uname -s)"
  36. echo "当前CPU架构: $(uname -m)"
  37. if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "aarch64" ]; then
  38. echo "复制arm平台必须构建文件taro.linux-arm64-gnu.node到目标位置"
  39. cp .build/taro.linux-arm64-gnu.node node_modules/@tarojs/binding/taro.linux-arm64-gnu.node
  40. echo "复制完成"
  41. fi
  42. node .build/h5_for_production.js
  43. deploy-h5-production:
  44. needs: build-h5-production
  45. runs-on: self-hosted
  46. steps:
  47. - name: 检出代码
  48. uses: actions/checkout@v4
  49. - name: 复制构建结果到部署目录
  50. run: |
  51. echo "开始复制构建结果..."
  52. mkdir -p /home/ccos/dros/linux-arm64-unpacked/h5
  53. rsync -av --delete dist/h5/ /home/ccos/dros/linux-arm64-unpacked/h5/
  54. echo "✅ 文件已成功复制到 /home/ccos/dros/linux-arm64-unpacked/h5"
  55. build-pkg:
  56. needs: deploy-h5-production
  57. runs-on: self-hosted
  58. steps:
  59. - name: 检出代码
  60. uses: actions/checkout@v4
  61. - name: 设置 Node.js 环境(PKG 需要 Node 18)
  62. uses: actions/setup-node@v4
  63. with:
  64. node-version: '18'
  65. - name: 安装依赖
  66. run: npm install --force
  67. - name: 构建 PKG
  68. run: npm run pkg
  69. build-android:
  70. needs: prepare-workspace
  71. runs-on: [self-hosted, win-android]
  72. defaults:
  73. run:
  74. shell: cmd # 全局切换到 cmd shell
  75. steps:
  76. - name: production-for-win-Android
  77. run: npm run h5_for_production
  78. - name: 构建 Android APK
  79. run: npm run build:android