From 863eaa5883205b3ca133a5dcf3c4b0d2e576025e Mon Sep 17 00:00:00 2001 From: Guoguo Date: Tue, 2 Dec 2025 18:06:41 +0800 Subject: [PATCH 1/2] feat: add GitHub Action --- .github/workflows/build.yml | 90 +++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..cd78563 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,90 @@ +name: Build Browser and Desktop Apps + +on: + workflow_dispatch: + # push: + # branches: + # - main + # pull_request: + # branches: + # - main + +env: + NODE_VERSION: '20' + +jobs: + build-browser: + name: Build Browser Bundle + runs-on: ubuntu-latest + defaults: + run: + working-directory: browser + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install dependencies + run: npm install + + - name: Build static site + run: npm run build + + - name: Upload browser dist + uses: actions/upload-artifact@v4 + with: + name: browser-dist + path: browser/dist + if-no-files-found: error + + build-desktop: + name: Build Desktop Apps + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + target: linux + build_script: build:linux + artifact_name: desktop-linux + - os: windows-latest + target: windows + build_script: build:win + artifact_name: desktop-windows + defaults: + run: + working-directory: desktop + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install Linux build dependencies + if: matrix.os == 'ubuntu-latest' + run: | + sudo apt-get update + sudo apt-get install -y build-essential python3 libudev-dev + + - name: Install dependencies + run: npm install + + - name: Build desktop package + run: npm run ${{ matrix.build_script }} + + - name: Upload desktop artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.artifact_name }} + path: desktop/dist + if-no-files-found: error From 6a58c7f4f23a5cc1946f5fbe0b465fae2abd3648 Mon Sep 17 00:00:00 2001 From: Guoguo Date: Tue, 2 Dec 2025 19:09:17 +0800 Subject: [PATCH 2/2] feat: build only specific directories modified --- .github/workflows/build.yml | 40 ++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd78563..d733e95 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,20 +2,44 @@ name: Build Browser and Desktop Apps on: workflow_dispatch: - # push: - # branches: - # - main - # pull_request: - # branches: - # - main - + push: + branches: + - main + pull_request: + branches: + - main + env: NODE_VERSION: '20' jobs: + detect-changes: + name: Detect Changed Paths + runs-on: ubuntu-latest + outputs: + browser: ${{ steps.filter.outputs.browser }} + desktop: ${{ steps.filter.outputs.desktop }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Filter changes + id: filter + uses: dorny/paths-filter@v3 + with: + filters: | + browser: + - 'browser/**' + desktop: + - 'desktop/**' + build-browser: name: Build Browser Bundle + needs: detect-changes runs-on: ubuntu-latest + if: needs.detect-changes.outputs.browser == 'true' defaults: run: working-directory: browser @@ -43,7 +67,9 @@ jobs: build-desktop: name: Build Desktop Apps + needs: detect-changes runs-on: ${{ matrix.os }} + if: needs.detect-changes.outputs.desktop == 'true' strategy: fail-fast: false matrix: