name: Build Executables on: workflow_dispatch: inputs: version: description: 'Version number (e.g. 1.0.9)' required: true default: '1.0.9-dev' permissions: contents: write actions: write packages: write jobs: create-tag: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Create Tag run: | git tag v${{ github.event.inputs.version }} git push origin v${{ github.event.inputs.version }} build-windows: needs: create-tag runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Set version shell: bash run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - name: Install dependencies run: | python -m pip install --upgrade pip pip install pyinstaller pip install -r requirements.txt - name: Build EXE run: | pyinstaller build.spec - name: Upload Windows artifact uses: actions/upload-artifact@v4 with: name: CursorFreeVIP_${{ env.VERSION }}_windows.exe path: dist/* build-macos-arm64: needs: create-tag runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Set version shell: bash run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - name: Install dependencies run: | python -m pip install --upgrade pip pip install pyinstaller pip install -r requirements.txt - name: Build MacOS ARM executable run: | pyinstaller build.spec - name: Upload MacOS ARM artifact uses: actions/upload-artifact@v4 with: name: CursorFreeVIP_${{ env.VERSION }}_mac_arm64 path: dist/* build-linux: needs: create-tag runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Set version shell: bash run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - name: Install dependencies run: | python -m pip install --upgrade pip pip install pyinstaller pip install -r requirements.txt - name: Build Linux executable run: | pyinstaller build.spec - name: Upload Linux artifact uses: actions/upload-artifact@v4 with: name: CursorFreeVIP_${{ env.VERSION }}_linux path: dist/* build-macos-intel: needs: create-tag runs-on: macos-latest steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.x' - name: Set version shell: bash run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - 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 build.spec - name: Upload MacOS Intel artifact uses: actions/upload-artifact@v4 with: name: CursorFreeVIP_${{ env.VERSION }}_mac_intel path: dist/* create-release: needs: [build-windows, build-macos-arm64, build-linux, build-macos-intel] runs-on: ubuntu-22.04 steps: - name: Get version shell: bash run: echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV - name: Download all artifacts uses: actions/download-artifact@v4 with: path: artifacts - name: Prepare release files run: | cd artifacts for dir in */; do base_name=$(basename "$dir") mv "$dir"* "$base_name" rmdir "$dir" done ls -la - name: Create Release uses: softprops/action-gh-release@v1 with: tag_name: v${{ env.VERSION }} files: | artifacts/CursorFreeVIP_${{ env.VERSION }}_windows.exe artifacts/CursorFreeVIP_${{ env.VERSION }}_mac_arm64 artifacts/CursorFreeVIP_${{ env.VERSION }}_linux artifacts/CursorFreeVIP_${{ env.VERSION }}_mac_intel draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}