build-linux-arm-appimage.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. arm64-full-build:
  15. runs-on: [self-hosted,ARM64]
  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: node .build/smart-install.js
  25. - name: 测试 SSH 连接
  26. env:
  27. DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
  28. DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
  29. DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
  30. DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
  31. run: node .build/deploy-to-server.js --test
  32. - name: 构建 H5 (生产环境)
  33. env:
  34. GH_TOKEN: ${{ secrets.GH_TOKEN }}
  35. TARO_API_URL: 'http://localhost:6001'
  36. TARO_MQTT_URL: 'ws://localhost:8083/mqtt'
  37. run: |
  38. set -e # 遇到错误立即退出
  39. echo "当前操作系统平台: $(uname -s)"
  40. echo "当前CPU架构: $(uname -m)"
  41. if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "aarch64" ]; then
  42. echo "复制arm平台必须构建文件taro.linux-arm64-gnu.node到目标位置"
  43. cp .build/taro.linux-arm64-gnu.node node_modules/@tarojs/binding/taro.linux-arm64-gnu.node
  44. echo "复制完成"
  45. fi
  46. node .build/h5_for_production.js
  47. npm run build:electron:linux
  48. build-android:
  49. runs-on: [self-hosted,android]
  50. # 移除全局 shell 设置,让各个步骤根据平台自动选择
  51. steps:
  52. - name: 检出代码
  53. uses: actions/checkout@v4
  54. # - name: Check Android SDK on Windows (cmd)
  55. # shell: cmd
  56. # env:
  57. # ANDROID_SDK_ROOT: 'C:\Users\ddx\AppData\Local\Android\Sdk' # <-- 修改为你的 SDK 安装路径
  58. # JAVA_HOME: 'C:\Program Files\Eclipse Adoptium\jdk-17.0.16.8-hotspot\' # <-- 修改为你的 JDK 路径
  59. # PATH: ${{ env.PATH }}';C:\Android\sdk\platform-tools;C:\Android\sdk\cmdline-tools\latest\bin'
  60. # run: |
  61. # echo USER: %USERNAME%
  62. # echo ANDROID_SDK_ROOT: %ANDROID_SDK_ROOT%
  63. - name: 设置 Node.js 环境
  64. uses: actions/setup-node@v4
  65. with:
  66. node-version: '22'
  67. # cache: 'npm' # Self-hosted runner 不需要远程缓存,本地 node_modules 会保留
  68. - name: Set up JDK 17
  69. uses: actions/setup-java@v4
  70. with:
  71. java-version: '17'
  72. distribution: 'temurin'
  73. - name: Export Java environment variables
  74. shell: cmd
  75. run: |
  76. chcp 65001 > nul
  77. echo JAVA_HOME=%JAVA_HOME%>> %GITHUB_ENV%
  78. echo ANDROID_SDK_ROOT=%ANDROID_SDK_ROOT%>> %GITHUB_ENV%
  79. echo PATH=%PATH%;%JAVA_HOME%\bin>> %GITHUB_ENV%
  80. - name: 智能安装依赖(跨平台)
  81. run: node .build/smart-install.js
  82. - name: 构建 H5(智能缓存)
  83. run: node .build/build-h5-smart.js
  84. - name: 构建 Android APK 并自动部署
  85. env:
  86. DEPLOY_ANDROID: 'true'
  87. DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
  88. DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
  89. DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
  90. DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
  91. CI: 'true'
  92. run: npm run build:android