From 589c5b457f7e3227d834e8b6048037b028fab178 Mon Sep 17 00:00:00 2001 From: Fazri Gading Date: Sun, 25 Jan 2026 18:34:01 +0800 Subject: [PATCH] Update release.yml --- .github/workflows/release.yml | 116 ++++++++++++++++++++++------------ 1 file changed, 76 insertions(+), 40 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c634521..65bbe02 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,79 +9,115 @@ on: workflow_dispatch: jobs: - build: - strategy: - matrix: - include: - - os: ubuntu-latest - platform: linux - - os: windows-latest - platform: win - - os: macos-latest - platform: mac - - runs-on: ${{ matrix.os }} + build-linux: + runs-on: ubuntu-latest steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 + - uses: actions/checkout@v4 + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install -y libarchive-tools + + - uses: actions/setup-node@v4 with: node-version: '22' cache: 'npm' - run: npm ci - # ONLY RUNS ON LINUX: Required for pacman/bsdtar - - name: Install Linux build dependencies - if: matrix.os == 'ubuntu-latest' + - name: Build Linux Packages run: | - sudo apt-get update - sudo apt-get install -y libarchive-tools - - - name: Build for ${{ matrix.os }} - run: npm run build:${{ matrix.platform }} - - - name: Upload Artifacts for ${{ matrix.os }} - uses: actions/upload-artifact@v4 + npx electron-builder --linux --x64 --arm64 --publish never + - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.os }}-builds + name: linux-builds path: | - dist/*.exe - dist/*.exe.blockmap - dist/*.dmg - dist/*.zip dist/*.AppImage dist/*.AppImage.blockmap dist/*.deb dist/*.rpm dist/*.pkg.tar.zst - dist/latest*.yml + dist/latest-linux.yml + + build-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + - run: npm ci + + - name: Build Windows Packages + run: npx electron-builder --win --publish never + - uses: actions/upload-artifact@v4 + with: + name: windows-builds + path: | + dist/*.exe + dist/*.exe.blockmap + dist/latest.yml + + build-macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: '22' + cache: 'npm' + - run: npm ci + + - name: Build macOS Packages + run: npx electron-builder --mac --publish never + - uses: actions/upload-artifact@v4 + with: + name: macos-builds + path: | + dist/*.dmg + dist/*.zip + dist/latest-mac.yml release: - needs: build + needs: [build-linux, build-windows, build-macos] runs-on: ubuntu-latest if: | - startsWith(github.ref, 'refs/tags/v') + startsWith(github.ref, 'refs/tags/v') || + github.ref == 'refs/heads/release' || + github.event_name == 'workflow_dispatch' + + permissions: + contents: write + steps: + # FIX: './package.json' Module Not Found in `Get version` step + - name: Checkout code + uses: actions/checkout@v4 + - name: Download all artifacts uses: actions/download-artifact@v4 with: path: artifacts - merge-multiple: true + - name: Display structure of downloaded files run: ls -R artifacts + - name: Get version from package.json id: pkg_version run: echo "VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT + - name: Create Release uses: softprops/action-gh-release@v2 with: + # If it's a tag, use the tag. tag_name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }} + # If it's the 'release' branch, use 'v2.0.2-beta.r42' + # name: ${{ github.ref_type == 'tag' && github.ref_name || format('v{0}-beta.r{1}', steps.pkg_version.outputs.VERSION, github.run_number) }} files: | - artifacts/ubuntu-latest-builds/**/* - artifacts/windows-latest-builds/**/* - artifacts/macos-latest-builds/**/* + artifacts/linux-builds/**/* + artifacts/windows-builds/**/* + artifacts/macos-builds/**/* generate_release_notes: true draft: true prerelease: false +