From fdd76a77082f0646d9e972647eefe2aa4a22cc21 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 2 Oct 2022 11:03:28 -0700 Subject: [PATCH] Try installing new Python from python.org --- .github/workflows/build.yml | 345 ++++++++++++++++++------------------ .github/workflows/tests.yml | 46 +++-- 2 files changed, 198 insertions(+), 193 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d3479ae8..cc124a6e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,208 +11,217 @@ on: - stable jobs: - build-win64: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 + # build-win64: + # runs-on: windows-latest + # steps: + # - uses: actions/checkout@v3 - - name: Install poetry - run: C:\hostedtoolcache\windows\Python\3.9.13\x64\python -m pip install poetry + # - name: Install poetry + # run: C:\hostedtoolcache\windows\Python\3.9.13\x64\python -m pip install poetry - - name: Restore cache - poetry - uses: actions/cache@v3 - with: - path: ~\AppData\Local\pypoetry\Cache\virtualenvs - key: ${{ runner.os }}-win64-poetry-${{ hashFiles('desktop/poetry.lock') }} + # - name: Restore cache - poetry + # uses: actions/cache@v3 + # with: + # path: ~\AppData\Local\pypoetry\Cache\virtualenvs + # key: ${{ runner.os }}-win64-poetry-${{ hashFiles('desktop/poetry.lock') }} - - name: Install poetry dependencies - run: | - cd desktop - C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry install - C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry env list --full-path + # - name: Install poetry dependencies + # run: | + # cd desktop + # C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry install + # C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry env list --full-path - - name: Restore cache - tor - uses: actions/cache@v3 - with: - path: desktop\build\tor - key: ${{ runner.os }}-win64-tor-${{ hashFiles('desktop/scripts/get-tor.py') }} + # - name: Restore cache - tor + # uses: actions/cache@v3 + # with: + # path: desktop\build\tor + # key: ${{ runner.os }}-win64-tor-${{ hashFiles('desktop/scripts/get-tor.py') }} - - name: Get tor binaries from Tor Browser (64-bit) - run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\get-tor.py win64 + # - name: Get tor binaries from Tor Browser (64-bit) + # run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\get-tor.py win64 - - name: Restore cache - obfs4proxy - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\obfs4proxy.exe - key: ${{ runner.os }}-win64-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }} + # - name: Restore cache - obfs4proxy + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\obfs4proxy.exe + # key: ${{ runner.os }}-win64-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }} - - name: Build obfs4proxy - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) { - Write-Output "obfs4proxy already built" - } else { - cd desktop - .\scripts\build-pt-obfs4proxy.ps1 - } + # - name: Build obfs4proxy + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) { + # Write-Output "obfs4proxy already built" + # } else { + # cd desktop + # .\scripts\build-pt-obfs4proxy.ps1 + # } - - name: Restore cache - snowflake - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\snowflake-client.exe - key: ${{ runner.os }}-win64-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }} + # - name: Restore cache - snowflake + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\snowflake-client.exe + # key: ${{ runner.os }}-win64-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }} - - name: Build snowflake - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) { - Write-Output "snowflake already built" - } else { - cd desktop - .\scripts\build-pt-snowflake.ps1 - } + # - name: Build snowflake + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) { + # Write-Output "snowflake already built" + # } else { + # cd desktop + # .\scripts\build-pt-snowflake.ps1 + # } - - name: Restore cache - meek - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\meek-client.exe - key: ${{ runner.os }}-win64-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }} + # - name: Restore cache - meek + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\meek-client.exe + # key: ${{ runner.os }}-win64-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }} - - name: Build meek - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) { - Write-Output "meek already built" - } else { - cd desktop - .\scripts\build-pt-meek.ps1 - } + # - name: Build meek + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) { + # Write-Output "meek already built" + # } else { + # cd desktop + # .\scripts\build-pt-meek.ps1 + # } - - name: Build OnionShare - run: | - cd desktop - C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\setup-freeze.py build - C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build + # - name: Build OnionShare + # run: | + # cd desktop + # C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\setup-freeze.py build + # C:\hostedtoolcache\windows\Python\3.9.13\x64\Scripts\poetry run python .\scripts\build-windows.py cleanup-build - - name: Compress - shell: pwsh - run: | - mv desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64 - Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip + # - name: Compress + # shell: pwsh + # run: | + # mv desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64 + # Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip - - uses: actions/upload-artifact@v3 - with: - name: win64-build - path: desktop\build\exe.win-amd64-3.9= + # - uses: actions/upload-artifact@v3 + # with: + # name: win64-build + # path: desktop\build\exe.win-amd64-3.9= - build-win32: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 + # build-win32: + # runs-on: windows-latest + # steps: + # - uses: actions/checkout@v3 - - name: Install poetry - run: C:\hostedtoolcache\windows\Python\3.9.13\x86\python -m pip install poetry + # - name: Install poetry + # run: C:\hostedtoolcache\windows\Python\3.9.13\x86\python -m pip install poetry - - name: Restore cache - poetry - uses: actions/cache@v3 - with: - path: ~\AppData\Local\pypoetry\Cache\virtualenvs - key: ${{ runner.os }}-win32-poetry-${{ hashFiles('desktop/poetry.lock') }} + # - name: Restore cache - poetry + # uses: actions/cache@v3 + # with: + # path: ~\AppData\Local\pypoetry\Cache\virtualenvs + # key: ${{ runner.os }}-win32-poetry-${{ hashFiles('desktop/poetry.lock') }} - - name: Install poetry dependencies - run: | - cd desktop - C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry install - C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry env list --full-path + # - name: Install poetry dependencies + # run: | + # cd desktop + # C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry install + # C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry env list --full-path - - name: Restore cache - tor - uses: actions/cache@v3 - with: - path: desktop\build\tor - key: ${{ runner.os }}-win32-tor-${{ hashFiles('desktop/scripts/get-tor.py') }} + # - name: Restore cache - tor + # uses: actions/cache@v3 + # with: + # path: desktop\build\tor + # key: ${{ runner.os }}-win32-tor-${{ hashFiles('desktop/scripts/get-tor.py') }} - - name: Get tor binaries from Tor Browser (32-bit) - run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\get-tor.py win32 + # - name: Get tor binaries from Tor Browser (32-bit) + # run: cd desktop && C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\get-tor.py win32 - - name: Install golang (32-bit) - shell: pwsh - run: | - cd ~\Downloads - Invoke-WebRequest -Uri https://go.dev/dl/go1.19.1.windows-386.msi -OutFile go1.19.1.windows-386.msi - msiexec.exe /i go1.19.1.windows-386.msi /quiet /L*V go-install.log + # - name: Install golang (32-bit) + # shell: pwsh + # run: | + # cd ~\Downloads + # Invoke-WebRequest -Uri https://go.dev/dl/go1.19.1.windows-386.msi -OutFile go1.19.1.windows-386.msi + # msiexec.exe /i go1.19.1.windows-386.msi /quiet /L*V go-install.log - - name: Restore cache - obfs4proxy - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\obfs4proxy.exe - key: ${{ runner.os }}-win32-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }} + # - name: Restore cache - obfs4proxy + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\obfs4proxy.exe + # key: ${{ runner.os }}-win32-obfs4proxy-${{ hashFiles('desktop/scripts/build-pt-obfs4proxy.ps1') }} - - name: Build obfs4proxy - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) { - Write-Output "obfs4proxy already built" - } else { - $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" - cd desktop - .\scripts\build-pt-obfs4proxy.ps1 - } + # - name: Build obfs4proxy + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\obfs4proxy.exe') -eq $True) { + # Write-Output "obfs4proxy already built" + # } else { + # $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" + # cd desktop + # .\scripts\build-pt-obfs4proxy.ps1 + # } - - name: Restore cache - snowflake - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\snowflake-client.exe - key: ${{ runner.os }}-win32-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }} + # - name: Restore cache - snowflake + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\snowflake-client.exe + # key: ${{ runner.os }}-win32-snowflake-${{ hashFiles('desktop/scripts/build-pt-snowflake.ps1') }} - - name: Build snowflake - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) { - Write-Output "snowflake already built" - } else { - $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" - cd desktop - .\scripts\build-pt-snowflake.ps1 - } + # - name: Build snowflake + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\snowflake-client.exe') -eq $True) { + # Write-Output "snowflake already built" + # } else { + # $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" + # cd desktop + # .\scripts\build-pt-snowflake.ps1 + # } - - name: Restore cache - meek - uses: actions/cache@v3 - with: - path: desktop\onionshare\resources\tor\meek-client.exe - key: ${{ runner.os }}-win32-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }} + # - name: Restore cache - meek + # uses: actions/cache@v3 + # with: + # path: desktop\onionshare\resources\tor\meek-client.exe + # key: ${{ runner.os }}-win32-meek-${{ hashFiles('desktop/scripts/build-pt-meek.ps1') }} - - name: Build meek - shell: pwsh - run: | - if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) { - Write-Output "meek already built" - } else { - $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" - cd desktop - .\scripts\build-pt-meek.ps1 - } + # - name: Build meek + # shell: pwsh + # run: | + # if ((Test-Path -Path 'desktop\onionshare\resources\tor\meek-client.exe') -eq $True) { + # Write-Output "meek already built" + # } else { + # $env:PATH = "C:\Program Files (x86)\Go\bin\go;$env:PATH" + # cd desktop + # .\scripts\build-pt-meek.ps1 + # } - - name: Build OnionShare - run: | - cd desktop - C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\setup-freeze.py build - C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\build-windows.py cleanup-build + # - name: Build OnionShare + # run: | + # cd desktop + # C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\setup-freeze.py build + # C:\hostedtoolcache\windows\Python\3.9.13\x86\Scripts\poetry run python .\scripts\build-windows.py cleanup-build - - name: Compress - shell: pwsh - run: | - mv desktop\build\exe.win32-3.9\ ~\onionshare-win32 - Compress-Archive -LiteralPath ~\onionshare-win32 -DestinationPath ~\onionshare-win32.zip + # - name: Compress + # shell: pwsh + # run: | + # mv desktop\build\exe.win32-3.9\ ~\onionshare-win32 + # Compress-Archive -LiteralPath ~\onionshare-win32 -DestinationPath ~\onionshare-win32.zip - - uses: actions/upload-artifact@v3 - with: - name: win32-build - path: ~\onionshare-win32.zip + # - uses: actions/upload-artifact@v3 + # with: + # name: win32-build + # path: ~\onionshare-win32.zip build-mac: runs-on: macos-latest steps: - uses: actions/checkout@v3 + + - name: Install Python 3.9.13 + run: | + which python3 + curl -L https://www.python.org/ftp/python/3.9.13/python-3.9.13-macosx10.9.pkg --output ~/Downloads/python.pkg + sudo installer -pkg ~/Downloads/python.pkg -target / + which python3 + ls -l /Applications + ls -l /Applications/Python* - name: Install poetry run: python3 -m pip install poetry @@ -282,9 +291,7 @@ jobs: - name: Build OnionShare run: | - sed -i '' "s|\.\./cli|$(pwd)/cli|g" desktop/pyproject.toml cd desktop - poetry update poetry run python ./setup-freeze.py build poetry run python ./setup-freeze.py bdist_mac poetry run python ./scripts/build-macos.py cleanup-build diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index daffb0bf..7f81f0b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,6 +1,6 @@ name: Run Tests run-name: Run tests -on: [push] +# on: [push] jobs: test-cli: @@ -28,26 +28,24 @@ jobs: poetry run onionshare-cli --local-only --website ../docs --auto-stop-timer 2 poetry run onionshare-cli --local-only --chat --auto-stop-timer 2 - # skip desktop tests during dev, because they're so slow - - # test-desktop: - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v3 - # - uses: actions/setup-python@v4 - # with: - # python-version: '3.9' - # - name: Install dependencies - # run: | - # sudo apt-get update - # sudo apt-get install -y tor obfs4proxy gcc python3-dev python3-pyside2.qtcore python3-pyside2.qtwidgets python3-pyside2.qtgui - # sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 - # pip install --upgrade pip poetry - # - uses: actions/cache@v3 - # with: - # path: ~/.cache/pypoetry/virtualenvs - # key: ${{ runner.os }}-desktop-poetry-${{ hashFiles('desktop/poetry.lock') }} - # - run: cd desktop && poetry install - # - run: | - # cd desktop - # QT_DEBUG_PLUGINS=1 xvfb-run poetry run pytest -v ./tests/test_gui_*.py + test-desktop: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: '3.9' + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y tor obfs4proxy gcc python3-dev python3-pyside2.qtcore python3-pyside2.qtwidgets python3-pyside2.qtgui + sudo apt-get install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev libxcb-render-util0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 + pip install --upgrade pip poetry + - uses: actions/cache@v3 + with: + path: ~/.cache/pypoetry/virtualenvs + key: ${{ runner.os }}-desktop-poetry-${{ hashFiles('desktop/poetry.lock') }} + - run: cd desktop && poetry install + - run: | + cd desktop + QT_DEBUG_PLUGINS=1 xvfb-run poetry run pytest -v ./tests/test_gui_*.py