name: CI 自动构建linux arm electron 包,并保存结果 on: push: branches: - master repository_dispatch: types: - webhook_trigger # 并发控制:自动取消旧的运行 concurrency: group: build-linux-arm-${{ github.ref }} cancel-in-progress: true jobs: arm64-full-build: runs-on: [self-hosted,ARM64] steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Node.js 环境 uses: actions/setup-node@v4 with: node-version: '20' - name: 智能安装依赖(跨平台) run: node .build/smart-install.js - name: 测试 SSH 连接 env: DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} run: node .build/deploy-to-server.js --test - name: 构建 H5 (生产环境) env: GH_TOKEN: ${{ secrets.GH_TOKEN }} TARO_API_URL: 'http://localhost:6001' TARO_MQTT_URL: 'ws://localhost:8083/mqtt' run: | set -e # 遇到错误立即退出 echo "当前操作系统平台: $(uname -s)" echo "当前CPU架构: $(uname -m)" if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "aarch64" ]; then echo "复制arm平台必须构建文件taro.linux-arm64-gnu.node到目标位置" cp .build/taro.linux-arm64-gnu.node node_modules/@tarojs/binding/taro.linux-arm64-gnu.node echo "复制完成" fi node .build/h5_for_production.js npm run build:electron:linux build-android: runs-on: [self-hosted,android] # 移除全局 shell 设置,让各个步骤根据平台自动选择 steps: - name: 检出代码 uses: actions/checkout@v4 # - name: Check Android SDK on Windows (cmd) # shell: cmd # env: # ANDROID_SDK_ROOT: 'C:\Users\ddx\AppData\Local\Android\Sdk' # <-- 修改为你的 SDK 安装路径 # JAVA_HOME: 'C:\Program Files\Eclipse Adoptium\jdk-17.0.16.8-hotspot\' # <-- 修改为你的 JDK 路径 # PATH: ${{ env.PATH }}';C:\Android\sdk\platform-tools;C:\Android\sdk\cmdline-tools\latest\bin' # run: | # echo USER: %USERNAME% # echo ANDROID_SDK_ROOT: %ANDROID_SDK_ROOT% - name: 设置 Node.js 环境 uses: actions/setup-node@v4 with: node-version: '22' # cache: 'npm' # Self-hosted runner 不需要远程缓存,本地 node_modules 会保留 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Export Java environment variables shell: bash run: | chcp 65001 > nul # 设置控制台为 UTF-8 编码 echo "设置 Java 和 Android SDK 环境变量" echo "JAVA_HOME=${JAVA_HOME}" >> $GITHUB_ENV echo "ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-$ANDROID_HOME}" >> $GITHUB_ENV echo "PATH=$PATH:$JAVA_HOME/bin" >> $GITHUB_ENV - name: 智能安装依赖(跨平台) run: node .build/smart-install.js - name: 构建 H5(智能缓存) run: node .build/build-h5-smart.js - name: 构建 Android APK 并自动部署 env: DEPLOY_ANDROID: 'true' DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }} DEPLOY_USER: ${{ secrets.DEPLOY_USER }} DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }} CI: 'true' run: npm run build:android