Skip to content

ci: test

ci: test #15

Workflow file for this run

name: Build Electron App
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest]
node-version: [18]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm i -g pnpm && pnpm install
- name: Build app
run: pnpm -F ui run build
- name: Build Electron App
run: pnpm -F ui run build:${{ matrix.os == 'windows-latest' && 'win' || 'mac' }}
# - name: "Debug: List release directory"
# run: node -e "console.log(require('fs').readdirSync('ui/release'))"
- name: Read version from package.json
id: get_version
run: |
VERSION=$(node -p "require('./package.json').version")
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Create Release
if: ${{ github.event_name == 'push' }}
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ env.VERSION }}
release_name: Release v${{ env.VERSION }}
body: |
This is an automated release generated by GitHub Actions.
draft: false
prerelease: false
- name: Find .dmg file
run: |
DMG_FILE=$(find ui/release/ -name "*.dmg" | head -n 1)
echo "DMG_FILE=$DMG_FILE" >> $GITHUB_ENV
- name: Find .exe file
run: |
EXE_FILE=$(find ui/release/ -name "*.exe" | head -n 1)
echo "EXE_FILE=$EXE_FILE" >> $GITHUB_ENV
- name: Upload macOS Release Asset (.dmg)
if: ${{ matrix.os == 'macos-latest' && github.event_name == 'push' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ env.DMG_FILE }}
asset_name: electron-app-macos-v${{ env.VERSION }}.dmg
asset_content_type: application/x-apple-diskimage
- name: Upload Windows Release Asset (.exe)
if: ${{ matrix.os == 'windows-latest' && github.event_name == 'push' }}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ env.EXE_FILE }}
asset_name: electron-app-windows-v${{ env.VERSION }}.exe
asset_content_type: application/vnd.microsoft.portable-executable