diff --git a/.github/workflows/deploy-pypi.yml b/.github/workflows/deploy-pypi.yml index c462d66..ae0eb57 100644 --- a/.github/workflows/deploy-pypi.yml +++ b/.github/workflows/deploy-pypi.yml @@ -10,6 +10,7 @@ jobs: build-distribution: name: Build distribution runs-on: ubuntu-latest + steps: - uses: actions/checkout@v4 @@ -57,16 +58,14 @@ jobs: if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes needs: - build-distribution - - deploy-binaries-macOS-x86_64-python311 - - deploy-binaries-macOS-arm64-python311 - - deploy-binaries-macOS-arm64-python312 - - deploy-binaries-windows-python312 + - deploy-binaries runs-on: ubuntu-latest environment: name: deploy-pypi url: https://pypi.org/p/Furious-GUI permissions: id-token: write # IMPORTANT: mandatory for trusted publishing + steps: - name: Download all the dists uses: actions/download-artifact@v3 @@ -76,17 +75,17 @@ jobs: - name: Publish distribution to PyPI uses: pypa/gh-action-pypi-publish@release/v1 - deploy-binaries-macOS-x86_64-python311: - name: Deploy binaries on macos-13 Python 3.11 - runs-on: macos-13 + deploy-binaries: + name: Deploy binaries on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [windows-2022, macos-13, macos-14] + steps: - uses: actions/checkout@v4 - - name: Install system dependencies - run: | - brew install create-dmg - - - name: Set up Python 3.11 + - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.11" @@ -95,9 +94,28 @@ jobs: - name: Set up Python venv run: | python3 -m venv .venv - source .venv/bin/activate + if [ "$RUNNER_OS" == "macOS" ]; then + source .venv/bin/activate + elif [ "$RUNNER_OS" == "Windows" ]; then + .venv/Scripts/activate + else + echo "$RUNNER_OS not supported" + exit 1 + fi python3 --version + - name: Install macOS dependencies + run: | + brew install create-dmg + if: runner.os == "macOS" + + # Remove problematic brew libs if Intel Mac + - name: Remove problematic brew libs on Intel Mac + run: | + brew remove --force --ignore-dependencies openssl@3 + brew cleanup openssl@3 + if: runner.os == "macOS" && runner.arch == "X64" + - name: Install setuptools, wheel run: >- python3 -m @@ -106,7 +124,14 @@ jobs: - name: Install specific PySide6-Essentials on OS run: | - python3 -m pip install PySide6-Essentials==6.4.3 + if [ "$RUNNER_OS" == "macOS" ]; then + python3 -m pip install PySide6-Essentials==6.4.3 + elif [ "$RUNNER_OS" == "Windows" ]; then + python3 -m pip install PySide6-Essentials==6.5.3 + else + echo "$RUNNER_OS not supported" + exit 1 + fi - name: Install requirements-nocore.txt run: >- @@ -118,7 +143,7 @@ jobs: run: >- python3 -m pip install - "nuitka==1.8.6" imageio + nuitka imageio - name: Set up go 1.20 uses: actions/setup-go@v4 @@ -141,238 +166,18 @@ jobs: python3 -m pip install "Xray-core >= 1.8.8" "hysteria2 >= 2.0.4" "tun2socks > 2.5.2" - name: Run deploy script - run: | - python3 Deploy.py + run: python3 Deploy.py - - name: Upgrade PySide6-Essentials to 6.5.3 + - name: Upgrade PySide6-Essentials to 6.5.3 if on macOS run: | python3 -m pip uninstall -y PySide6-Essentials shiboken6 python3 -m pip install PySide6-Essentials==6.5.3 + if: runner.os == "macOS" - - name: Run deploy script again - run: | - python3 Deploy.py - - - name: Store the distribution packages - uses: actions/upload-artifact@v3 - with: - name: binary-distributions - path: | - *.dmg - - deploy-binaries-macOS-arm64-python311: - name: Deploy binaries on macos-14 Python 3.11 - runs-on: macos-14 - steps: - - uses: actions/checkout@v4 - - - name: Install system dependencies - run: | - brew install create-dmg - - - name: Set up Python 3.11 - uses: actions/setup-python@v4 - with: - python-version: "3.11" - check-latest: true - - - name: Set up Python venv - run: | - python3 -m venv .venv - source .venv/bin/activate - python3 --version - - - name: Install setuptools, wheel - run: >- - python3 -m - pip install - setuptools wheel - - - name: Install specific PySide6-Essentials on OS - run: | - python3 -m pip install PySide6-Essentials==6.4.3 - - - name: Install requirements-nocore.txt - run: >- - python3 -m - pip install - -r requirements-nocore.txt - - - name: Install nuitka, imageio - run: >- - python3 -m - pip install - "nuitka==1.8.6" imageio - - - name: Set up go 1.20 - uses: actions/setup-go@v4 - with: - go-version: "1.20" - - - name: Install go 1.20 dependencies - run: | - go version - python3 -m pip install "hysteria > 1.3.5" - - - name: Set up go 1.22 - uses: actions/setup-go@v4 - with: - go-version: "1.22" - - - name: Install go 1.22 dependencies - run: | - go version - python3 -m pip install "Xray-core >= 1.8.8" "hysteria2 >= 2.0.4" "tun2socks > 2.5.2" - - - name: Run deploy script - run: | - python3 Deploy.py - - - name: Store the distribution packages - uses: actions/upload-artifact@v3 - with: - name: binary-distributions - path: | - *.dmg - - deploy-binaries-macOS-arm64-python312: - name: Deploy binaries on macos-14 Python 3.12 - runs-on: macos-14 - steps: - - uses: actions/checkout@v4 - - - name: Install system dependencies - run: | - brew install create-dmg - - - name: Set up Python 3.12 - uses: actions/setup-python@v4 - with: - python-version: "3.12" - check-latest: true - - - name: Set up Python venv - run: | - python3 -m venv .venv - source .venv/bin/activate - python3 --version - - - name: Install setuptools, wheel - run: >- - python3 -m - pip install - setuptools wheel - - - name: Install specific PySide6-Essentials on OS - run: | - python3 -m pip install PySide6-Essentials==6.6.3.1 - - - name: Install requirements-nocore.txt - run: >- - python3 -m - pip install - -r requirements-nocore.txt - - - name: Install nuitka, imageio - run: >- - python3 -m - pip install - nuitka imageio - - - name: Set up go 1.20 - uses: actions/setup-go@v4 - with: - go-version: "1.20" - - - name: Install go 1.20 dependencies - run: | - go version - python3 -m pip install "hysteria > 1.3.5" - - - name: Set up go 1.22 - uses: actions/setup-go@v4 - with: - go-version: "1.22" - - - name: Install go 1.22 dependencies - run: | - go version - python3 -m pip install "Xray-core >= 1.8.8" "hysteria2 >= 2.0.4" "tun2socks > 2.5.2" - - - name: Run deploy script - run: | - python3 Deploy.py - - - name: Store the distribution packages - uses: actions/upload-artifact@v3 - with: - name: binary-distributions - path: | - *.dmg - - deploy-binaries-windows-python312: - name: Deploy binaries on windows-2022 Python 3.12 - runs-on: windows-2022 - steps: - - uses: actions/checkout@v4 - - - name: Set up Python 3.12 - uses: actions/setup-python@v4 - with: - python-version: "3.12" - check-latest: true - - - name: Set up Python venv - run: | - python3 -m venv .venv - .venv/Scripts/activate - python3 --version - - - name: Install setuptools, wheel - run: >- - python3 -m - pip install - setuptools wheel - - - name: Install specific PySide6-Essentials on OS - run: | - python3 -m pip install PySide6-Essentials==6.6.3.1 - - - name: Install requirements-nocore.txt - run: >- - python3 -m - pip install - -r requirements-nocore.txt - - - name: Install nuitka, imageio - run: >- - python3 -m - pip install - nuitka imageio - - - name: Set up go 1.20 - uses: actions/setup-go@v4 - with: - go-version: "1.20" - - - name: Install go 1.20 dependencies - run: | - go version - python3 -m pip install "hysteria > 1.3.5" - - - name: Set up go 1.22 - uses: actions/setup-go@v4 - with: - go-version: "1.22" - - - name: Install go 1.22 dependencies - run: | - go version - python3 -m pip install "Xray-core >= 1.8.8" "hysteria2 >= 2.0.4" "tun2socks > 2.5.2" - - - name: Run deploy script + - name: Run deploy script again if on macOS run: | python3 Deploy.py + if: runner.os == "macOS" - name: Store the distribution packages uses: actions/upload-artifact@v3 @@ -380,11 +185,13 @@ jobs: name: binary-distributions path: | *.zip + *.dmg github-release: name: >- Upload to GitHub Release needs: + - deploy-binaries - publish-to-pypi runs-on: ubuntu-latest