| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- name: Build Electron App
- on:
- push:
- tags:
- - '*' # Triggers on version tags like v1.0.0
- workflow_dispatch: # Allows manual triggering
- jobs:
- build:
- strategy:
- matrix:
- # os: [macos-latest, windows-latest]
- os: [windows-latest]
- runs-on: ${{ matrix.os }}
- defaults:
- run:
- shell: bash
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Setup Bun
- uses: oven-sh/setup-bun@v2
- with:
- bun-version: latest
- - name: Setup Node.js
- uses: actions/setup-node@v4
- with:
- node-version: '20'
- - name: Setup Go
- uses: actions/setup-go@v5
- with:
- go-version: '>=1.18.0'
- - name: Build frontend
- env:
- CI: ""
- NODE_OPTIONS: "--max-old-space-size=4096"
- run: |
- cd web
- bun install
- DISABLE_ESLINT_PLUGIN='true' VITE_REACT_APP_VERSION=$(git describe --tags) bun run build
- cd ..
- # - name: Build Go binary (macos/Linux)
- # if: runner.os != 'Windows'
- # run: |
- # go mod download
- # go build -ldflags "-s -w -X 'one-api/common.Version=$(git describe --tags)' -extldflags '-static'" -o new-api
- - name: Build Go binary (Windows)
- if: runner.os == 'Windows'
- run: |
- go mod download
- go build -ldflags "-s -w -X 'one-api/common.Version=$(git describe --tags)'" -o new-api.exe
- - name: Update Electron version
- run: |
- cd electron
- VERSION=$(git describe --tags)
- VERSION=${VERSION#v} # Remove 'v' prefix if present
- npm version $VERSION --no-git-tag-version --allow-same-version
- - name: Install Electron dependencies
- run: |
- cd electron
- npm install
- # - name: Build Electron app (macOS)
- # if: runner.os == 'macOS'
- # run: |
- # cd electron
- # npm run build:mac
- # env:
- # CSC_IDENTITY_AUTO_DISCOVERY: false # Skip code signing
- - name: Build Electron app (Windows)
- if: runner.os == 'Windows'
- run: |
- cd electron
- npm run build:win
- # - name: Upload artifacts (macOS)
- # if: runner.os == 'macOS'
- # uses: actions/upload-artifact@v4
- # with:
- # name: macos-build
- # path: |
- # electron/dist/*.dmg
- # electron/dist/*.zip
- - name: Upload artifacts (Windows)
- if: runner.os == 'Windows'
- uses: actions/upload-artifact@v4
- with:
- name: windows-build
- path: |
- electron/dist/*.exe
- release:
- needs: build
- runs-on: ubuntu-latest
- if: startsWith(github.ref, 'refs/tags/')
- steps:
- - name: Download all artifacts
- uses: actions/download-artifact@v4
- - name: Create Release
- uses: softprops/action-gh-release@v2
- with:
- files: |
- # macos-build/*
- windows-build/*
- draft: false
- prerelease: false
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|