From 343b753ff474e2585969fef13e3c695feca1eba4 Mon Sep 17 00:00:00 2001 From: MKStoler Date: Fri, 6 Dec 2024 16:11:04 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20pr=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/prbuild.yaml | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/prbuild.yaml diff --git a/.github/workflows/prbuild.yaml b/.github/workflows/prbuild.yaml new file mode 100644 index 0000000..9a28eeb --- /dev/null +++ b/.github/workflows/prbuild.yaml @@ -0,0 +1,63 @@ +name: Release Build and Package + +on: + pull_request: + branches-ignore: + - 'all-contributors/add-**' + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [windows-latest, macos-latest, ubuntu-latest] + node-version: [20.x] + + steps: + - name: Checkout + uses: actions/checkout@v4.1.7 + if: github.event.release.prerelease == false || matrix.os == 'windows-latest' + + - name: Set up Node.js + uses: actions/setup-node@v4 + if: github.event.release.prerelease == false || matrix.os == 'windows-latest' + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: yarn install + if: github.event.release.prerelease == false || matrix.os == 'windows-latest' + + - name: Build and package for Windows + if: github.event.release.prerelease == false && matrix.os == 'windows-latest' + run: yarn build:win + + - name: Build and package for macOS + if: github.event.release.prerelease == true && matrix.os == 'macos-latest' + run: yarn build:mac + + - name: Build and package for Linux + if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest' + run: yarn build:linux + + - name: Upload artifact for Windows + if: matrix.os == 'windows-latest' + uses: actions/upload-artifact@v4 + with: + name: ExamShowboard-Windows + path: dist/*.exe + + - name: Upload artifact for macOS + if: github.event.release.prerelease == true && matrix.os == 'macos-latest' + uses: actions/upload-artifact@v4 + with: + name: ExamShowboard-macOS + path: dist/*.dmg + + - name: Upload artifact for Linux + if: github.event.release.prerelease == true && matrix.os == 'ubuntu-latest' + uses: actions/upload-artifact@v4 + with: + name: ExamShowboard-Linux + path: dist/*.AppImage