diff --git a/.github/workflows/deploy-pypi.yml b/.github/workflows/deploy-pypi.yml index 83080cc..e8db777 100644 --- a/.github/workflows/deploy-pypi.yml +++ b/.github/workflows/deploy-pypi.yml @@ -10,7 +10,6 @@ jobs: build-distribution: name: Build distribution runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 @@ -58,14 +57,16 @@ jobs: if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes needs: - build-distribution - - deploy-binaries + - deploy-binaries-macOS-x86_64-python311 + - deploy-binaries-macOS-arm64-python311 + - deploy-binaries-macOS-arm64-python312 + - deploy-binaries-windows-python312 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 @@ -75,17 +76,17 @@ jobs: - name: Publish distribution to PyPI uses: pypa/gh-action-pypi-publish@release/v1 - deploy-binaries: - name: Deploy binaries on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-2022, macos-13, macos-14] - + deploy-binaries-macOS-x86_64-python311: + name: Deploy binaries on macos-13 Python 3.11 + runs-on: macos-13 steps: - uses: actions/checkout@v4 - - name: Set up Python + - 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" @@ -94,22 +95,9 @@ jobs: - name: Set up Python venv run: | python3 -m venv .venv - 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 + source .venv/bin/activate python3 --version - - name: Install system dependencies - run: | - if [ "$RUNNER_OS" == "macOS" ]; then - brew install create-dmg - fi - - name: Install setuptools, wheel run: >- python3 -m @@ -118,14 +106,7 @@ jobs: - name: Install specific PySide6-Essentials on OS run: | - 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 + python3 -m pip install PySide6-Essentials==6.4.3 - name: Install requirements-nocore.txt run: >- @@ -160,20 +141,247 @@ 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 - - - name: Upgrade PySide6-Essentials to 6.5.3 if on macOS run: | - if [ "$RUNNER_OS" == "macOS" ]; then - python3 -m pip uninstall -y PySide6-Essentials shiboken6 - python3 -m pip install PySide6-Essentials==6.5.3 - fi + python3 Deploy.py - - name: Run deploy script again if on macOS + - name: Upgrade PySide6-Essentials to 6.5.3 run: | - if [ "$RUNNER_OS" == "macOS" ]; then - python3 Deploy.py - fi + python3 -m pip uninstall -y PySide6-Essentials shiboken6 + python3 -m pip install PySide6-Essentials==6.5.3 + + - 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: Upgrade PySide6-Essentials to 6.5.3 + run: | + python3 -m pip uninstall -y PySide6-Essentials shiboken6 + python3 -m pip install PySide6-Essentials==6.5.3 + + - 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-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 + run: | + python3 Deploy.py - name: Store the distribution packages uses: actions/upload-artifact@v3 @@ -181,13 +389,11 @@ jobs: name: binary-distributions path: | *.zip - *.dmg github-release: name: >- Upload to GitHub Release needs: - - deploy-binaries - publish-to-pypi runs-on: ubuntu-latest