diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c184b29..a87a868 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -87,8 +87,41 @@ jobs: name: CursorPro-Linux path: dist/CursorPro + build-macos-intel: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + arch -x86_64 pip3 install --upgrade pip + arch -x86_64 pip3 install pyinstaller + arch -x86_64 pip3 install -r requirements.txt + + - name: Build MacOS Intel executable + env: + TARGET_ARCH: 'x86_64' + run: | + arch -x86_64 python3 -m PyInstaller CursorKeepAlive.spec + + - name: Verify architecture + run: | + file dist/CursorPro | grep "x86_64" || (echo "Wrong architecture" && exit 1) + + - name: Upload MacOS Intel artifact + uses: actions/upload-artifact@v4 + with: + name: CursorPro-MacOS-Intel + path: dist/CursorPro + create-release: - needs: [build-windows, build-macos-arm64, build-linux] + needs: [build-windows, build-macos-arm64, build-linux, build-macos-intel] runs-on: ubuntu-22.04 if: startsWith(github.ref, 'refs/tags/') @@ -104,7 +137,9 @@ jobs: zip -r CursorPro-Windows.zip CursorPro-Windows/ zip -r CursorPro-MacOS-ARM64.zip CursorPro-MacOS-ARM64/ zip -r CursorPro-Linux.zip CursorPro-Linux/ - + zip -r CursorPro-MacOS-Intel.zip CursorPro-MacOS-Intel/ + + - name: Create Release uses: softprops/action-gh-release@v1 with: @@ -112,5 +147,7 @@ jobs: artifacts/CursorPro-Windows.zip artifacts/CursorPro-MacOS-ARM64.zip artifacts/CursorPro-Linux.zip + artifacts/CursorPro-MacOS-Intel.zip + env: GITHUB_TOKEN: ${{ secrets.TOKEN }} \ No newline at end of file diff --git a/CursorKeepAlive.spec b/CursorKeepAlive.spec index 4776be6..a210c2b 100644 --- a/CursorKeepAlive.spec +++ b/CursorKeepAlive.spec @@ -1,4 +1,5 @@ # -*- mode: python ; coding: utf-8 -*- +import os a = Analysis( ['cursor_pro_keep_alive.py'], @@ -20,6 +21,8 @@ a = Analysis( pyz = PYZ(a.pure) +target_arch = os.environ.get('TARGET_ARCH', None) + exe = EXE( pyz, a.scripts, @@ -35,9 +38,9 @@ exe = EXE( runtime_tmpdir=None, console=True, disable_windowed_traceback=False, - argv_emulation=False, - target_arch=None, + argv_emulation=True, # 对非Mac平台无影响 + target_arch=target_arch, # 仅在需要时通过环境变量指定 codesign_identity=None, entitlements_file=None, icon=None -) \ No newline at end of file +) \ No newline at end of file