From 404edd9836ade32723761beacbdcd01ea2c8f091 Mon Sep 17 00:00:00 2001 From: Gregorio Litenstein Date: Wed, 18 Sep 2024 10:36:49 -0300 Subject: [PATCH] Update GTK stack for use in CI/CD Clarified a little what this commit actually does. --- .github/workflows/cd.yml | 19 +++++++++++++++---- .github/workflows/ci.yml | 33 +++++++++++++++++++++++++++++---- requirements-tests.txt | 2 +- requirements.txt | 2 +- 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 959b654822..1ddf5e7d82 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -16,6 +16,9 @@ on: ref: description: "Enter a tag or commit to package" default: "" + gvsbuild-tag: + description: "Use an alternative gvsbuild release for the windows build. Defaults to latest." + default: "latest" jobs: windows_package: @@ -23,8 +26,8 @@ jobs: if: (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'package')) strategy: matrix: - arch: [x64, x86] - python: ["3.9"] + arch: [x64] + python: ["3.10"] libtorrent: [2.0.7, 1.2.19] steps: @@ -49,12 +52,20 @@ jobs: cache: pip - name: Prepare pip - run: python -m pip install wheel setuptools==68.* + run: python -m pip install wheel setuptools==70.* + + - name: Determine gvsbuild release URL + id: gvsbuild-url + shell: bash + run: | + test -z "${{ github.event.inputs.gvsbuild-tag }}" && tag=latest || tag="${{ github.event.inputs.gvsbuild-tag }}" + if [[ "$tag" == "latest" ]]; then URL="https://github.com/${{ github.repository_owner }}/gvsbuild-release/releases/$tag/download"; else URL="https://github.com/${{ github.repository_owner }}/gvsbuild-release/releases/download/$tag" ; fi + echo "gvsbuild-release-url=$URL" >> $GITHUB_OUTPUT - name: Install GTK run: | $WebClient = New-Object System.Net.WebClient - $WebClient.DownloadFile("https://github.com/deluge-torrent/gvsbuild-release/releases/download/latest/gvsbuild-py${{ matrix.python }}-vs16-${{ matrix.arch }}.zip","C:\GTK.zip") + $WebClient.DownloadFile("${{ steps.gvsbuild-url.outputs.gvsbuild-release-url }}/gvsbuild-py${{ matrix.python }}-vs17-${{ matrix.arch }}.zip","C:\GTK.zip") 7z x C:\GTK.zip -oc:\GTK echo "C:\GTK\release\lib" | Out-File -FilePath $env:GITHUB_PATH -Append echo "C:\GTK\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Append diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d648ba1dfd..94de45612e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,13 +10,19 @@ on: core-dump: description: "Set to 1 to enable retrieving core dump from crashes" default: "0" + gvsbuild-tag: + description: "Use an alternative gvsbuild release for the windows build. Defaults to latest." + default: "latest" jobs: test-linux: - runs-on: ubuntu-22.04 strategy: matrix: - python-version: ["3.7", "3.10"] - + python-version: ["3.9", "3.10"] + os: ["ubuntu-24.04"] + include: + - os: ubuntu-22.04 + python-version: 3.7 + runs-on: ${{ matrix.os }} steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 @@ -74,7 +80,8 @@ jobs: runs-on: windows-2022 strategy: matrix: - python-version: ["3.7", "3.10"] + python-version: ["3.7", "3.9", "3.10"] + arch: ["x64"] steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it @@ -89,6 +96,24 @@ jobs: cache: "pip" cache-dependency-path: "requirements*.txt" + - name: Determine gvsbuild release URL + id: gvsbuild-url + shell: bash + run: | + test -z "${{ github.event.inputs.gvsbuild-tag }}" && tag=latest || tag="${{ github.event.inputs.gvsbuild-tag }}" + if [[ "$tag" == "latest" ]]; then URL="https://github.com/${{ github.repository_owner }}/gvsbuild-release/releases/$tag/download"; else URL="https://github.com/${{ github.repository_owner }}/gvsbuild-release/releases/download/$tag" ; fi + echo "gvsbuild-release-url=$URL" >> $GITHUB_OUTPUT + + - name: Install GTK + run: | + $WebClient = New-Object System.Net.WebClient + $WebClient.DownloadFile("${{ steps.gvsbuild-url.outputs.gvsbuild-release-url }}/gvsbuild-py${{ matrix.python-version }}-vs17-${{matrix.arch}}.zip","C:\GTK.zip") + 7z x C:\GTK.zip -oc:\GTK + echo "C:\GTK\release\lib" | Out-File -FilePath $env:GITHUB_PATH -Append + echo "C:\GTK\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Append + echo "C:\GTK\release" | Out-File -FilePath $env:GITHUB_PATH -Append + python -m pip install --no-index --find-links="C:\GTK\release\python" pycairo PyGObject + - name: Install dependencies run: | pip install --upgrade pip wheel setuptools diff --git a/requirements-tests.txt b/requirements-tests.txt index 346a27500e..89203f829f 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -1,4 +1,4 @@ -libtorrent +libtorrent==2.0.7 pytest pytest-twisted pytest-cov diff --git a/requirements.txt b/requirements.txt index 4aee26d2da..eeef0fe58b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ libtorrent -twisted[tls]>=17.1 +twisted[tls]>=17.1,<=24.7 twisted[tls]<23,>=17.1; sys_platform == 'win32' rencode pyopenssl