| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 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: |
- 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
|