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: prepare-workspace: runs-on: self-hosted steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Node.js 环境 uses: actions/setup-node@v4 with: node-version: '20' - name: 安装依赖 run: npm install --force build-h5-production: needs: prepare-workspace runs-on: self-hosted steps: - name: 构建 H5 (生产环境) env: GH_TOKEN: ${{ secrets.GH_TOKEN }} TARO_API_URL: 'http://localhost:6001' TARO_MQTT_URL: 'ws://localhost:8083/mqtt' run: | 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 npm run build:h5 deploy-h5-production: needs: build-h5-production runs-on: self-hosted steps: - name: 检出代码 uses: actions/checkout@v4 - name: 复制构建结果到部署目录 run: | echo "开始复制构建结果..." mkdir -p /home/ccos/dros/linux-arm64-unpacked/h5 rsync -av --delete dist/h5/ /home/ccos/dros/linux-arm64-unpacked/h5/ echo "✅ 文件已成功复制到 /home/ccos/dros/linux-arm64-unpacked/h5" build-pkg: needs: deploy-h5-production runs-on: self-hosted steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Node.js 环境(PKG 需要 Node 18) uses: actions/setup-node@v4 with: node-version: '18' - name: 安装依赖 run: npm install --force - name: 构建 PKG run: npm run pkg build-android: needs: prepare-workspace runs-on: [self-hosted, win-android] steps: - name: 构建 Android APK run: npm run build:android