From 73442dde877f5a201508202c4d7a6cc366c23563 Mon Sep 17 00:00:00 2001 From: KevIsDev Date: Mon, 12 May 2025 01:08:34 +0100 Subject: [PATCH] ci: add Electron build process to release workflow Add steps to build and upload Electron app artifacts as part of the release workflow. This includes setting up Node.js, installing dependencies, and building the app for different platforms (Windows, macOS, Linux). The built artifacts are then uploaded as release assets. --- .github/workflows/update-stable.yml | 54 +++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-stable.yml b/.github/workflows/update-stable.yml index f990968..5c0ddef 100644 --- a/.github/workflows/update-stable.yml +++ b/.github/workflows/update-stable.yml @@ -88,7 +88,6 @@ jobs: env: NEW_VERSION: ${{ steps.bump_version.outputs.new_version }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: .github/scripts/generate-changelog.sh - name: Get the latest commit hash and version tag @@ -96,6 +95,57 @@ jobs: echo "COMMIT_HASH=$(git rev-parse HEAD)" >> $GITHUB_ENV echo "NEW_VERSION=${{ steps.bump_version.outputs.new_version }}" >> $GITHUB_ENV + # Electron Build Process (added) + - name: Checkout Electron App + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js and pnpm for Electron + uses: actions/setup-node@v4 + with: + node-version: '18' + + - name: Install pnpm for Electron + uses: pnpm/action-setup@v2 + with: + version: latest + run_install: true + + - name: Install Dependencies for Electron + run: pnpm install + + - name: Install Linux dependencies for Electron + if: runner.os == 'Linux' + run: | + sudo apt-get update + sudo apt-get install -y rpm + + - name: Build Electron app + run: | + if [ "$RUNNER_OS" == "Windows" ]; then + pnpm run electron:build:win + elif [ "$RUNNER_OS" == "macOS" ]; then + pnpm run electron:build:mac + else + pnpm run electron:build:linux + fi + + - name: Upload Electron Build as Release Assets + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ steps.bump_version.outputs.new_version }} + name: "Electron Release v${{ steps.bump_version.outputs.new_version }}" + files: | + dist/*.exe + dist/*.dmg + dist/*.deb + dist/*.AppImage + dist/*.zip + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Commit and Tag Release - name: Commit and Tag Release run: | git pull @@ -124,4 +174,4 @@ jobs: gh release create "$VERSION" \ --title "Release $VERSION" \ --notes-file release_notes.md \ - --target stable + --target stable \ No newline at end of file