name: Build Artifacts on: workflow_dispatch: # 手动触发 push: branches: [main] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] include: - os: ubuntu-latest platform: linux target: node18-linux-x64 output: precompiled/app - os: windows-latest platform: win target: node18-win-x64 output: precompiled/app.exe - os: macos-latest platform: macos target: node18-macos-x64 output: precompiled/app steps: - name: Checkout code uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '18' - name: Install dependencies run: | npm install -g pnpm pnpm install - name: Build for ${{ matrix.platform }} run: | npm run pkg${{ matrix.platform }} env: PKG_TARGET: ${{ matrix.target }} - name: Upload artifacts uses: actions/upload-artifact@v7 with: name: app-${{ matrix.platform }} path: ${{ matrix.output }} if-no-files-found: error