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: build-h5-production: 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: npm install --force - 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 node .build/h5_for_production.js - 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: runs-on: [self-hosted, win-android] defaults: run: shell: cmd # 全局切换到 cmd shell steps: - name: 检出代码 uses: actions/checkout@v4 - name: 设置 Node.js 环境 uses: actions/setup-node@v4 with: node-version: '20' - name: 安装依赖 run: npm install --force - name: 构建h5 run: npm run h5_for_production - name: 构建 Android APK run: npm run build:android