From 57480016f1f161c6a12af28aff9c8bc9a3eed442 Mon Sep 17 00:00:00 2001 From: digua Date: Tue, 14 Apr 2026 20:04:46 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E9=80=82=E9=85=8DAR?= =?UTF-8?q?M=E6=9E=B6=E6=9E=84linux=E7=B3=BB=E7=BB=9F=E7=9A=84deb=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=8C=85(resolve=20#136)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 41 +++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4304d2d6..3027eb51 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -165,7 +165,14 @@ jobs: retention-days: 1 # 只保留1天,Release后会上传到GitHub Releases build-linux: - runs-on: ubuntu-latest + strategy: + matrix: + include: + - os: ubuntu-latest + arch: x64 + - os: ubuntu-24.04-arm + arch: arm64 + runs-on: ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v5 @@ -188,9 +195,9 @@ jobs: uses: actions/cache@v5 with: path: ${{ env.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + key: ${{ runner.os }}-${{ matrix.arch }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-pnpm-store- + ${{ runner.os }}-${{ matrix.arch }}-pnpm-store- - name: Install dependencies run: | @@ -203,20 +210,25 @@ jobs: path: | ~/.cache/electron ~/.cache/electron-builder - key: ${{ runner.os }}-electron-builder-${{ hashFiles('**/pnpm-lock.yaml') }} + key: ${{ runner.os }}-${{ matrix.arch }}-electron-builder-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-electron-builder- + ${{ runner.os }}-${{ matrix.arch }}-electron-builder- - - name: Build Electron app for Linux + - name: Build Electron app for Linux (${{ matrix.arch }}) env: GH_TOKEN: ${{ secrets.GH_TOKEN }} APTABASE_APP_KEY: ${{ secrets.APTABASE_APP_KEY }} - run: pnpm build:linux + run: | + if [ "${{ matrix.arch }}" = "arm64" ]; then + pnpm run build && pnpm exec electron-builder --linux deb --arm64 --config electron-builder.yml -p never + else + pnpm build:linux + fi - - name: Upload Linux artifacts + - name: Upload Linux artifacts (${{ matrix.arch }}) uses: actions/upload-artifact@v6 with: - name: ChatLab-linux + name: ChatLab-linux-${{ matrix.arch }} path: | dist/*.AppImage dist/*.deb @@ -256,7 +268,13 @@ jobs: - name: Download Linux artifacts uses: actions/download-artifact@v8 with: - name: ChatLab-linux + name: ChatLab-linux-x64 + path: dist + + - name: Download Linux artifacts (arm64) + uses: actions/download-artifact@v8 + with: + name: ChatLab-linux-arm64 path: dist - name: List files @@ -306,7 +324,8 @@ jobs: echo "| Mac (Intel) | [ChatLab-${VERSION_NUMBER}-x64.dmg](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/ChatLab-${VERSION_NUMBER}-x64.dmg) |" echo "| Windows | [ChatLab-${VERSION_NUMBER}-setup.exe](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/ChatLab-${VERSION_NUMBER}-setup.exe) |" echo "| Linux (AppImage) | [ChatLab-${VERSION_NUMBER}.AppImage](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/ChatLab-${VERSION_NUMBER}.AppImage) |" - echo "| Linux (deb) | [chatlab_${VERSION_NUMBER}_amd64.deb](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/chatlab_${VERSION_NUMBER}_amd64.deb) |" + echo "| Linux (deb, x86_64) | [chatlab_${VERSION_NUMBER}_amd64.deb](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/chatlab_${VERSION_NUMBER}_amd64.deb) |" + echo "| Linux (deb, ARM64) | [chatlab_${VERSION_NUMBER}_arm64.deb](https://github.com/hellodigua/ChatLab/releases/download/v${VERSION_NUMBER}/chatlab_${VERSION_NUMBER}_arm64.deb) |" } > release_notes.md echo "Generated release notes:"