From 6e165e0022f8515676e54fddf54afdadd6570124 Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 9 Apr 2024 17:47:30 +0000 Subject: [PATCH 1/9] install dependencies in unit-tests with uv Signed-off-by: tokoko --- Makefile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Makefile b/Makefile index 813a27f4e3b..e70852afc64 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,11 @@ install-python-ci-dependencies: pip install --no-deps -e . python setup.py build_python_protos --inplace +install-python-ci-dependencies-uv: + uv pip sync --system sdk/python/requirements/py$(PYTHON)-ci-requirements.txt + uv pip install --system --no-deps -e . + python setup.py build_python_protos --inplace + lock-python-ci-dependencies: python -m piptools compile -U --extra ci --output-file sdk/python/requirements/py$(PYTHON)-ci-requirements.txt From 8ea121046bf57e4dc9701d5218ea8fa197bdbdb8 Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 9 Apr 2024 17:51:16 +0000 Subject: [PATCH 2/9] install dependencies in unit-tests with uv Signed-off-by: tokoko --- .github/workflows/unit_tests.yml | 39 +++++++++++++++++--------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index f3f91bb67f3..cd47ef85dd4 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -19,31 +19,34 @@ jobs: - uses: actions/checkout@v3 - name: Setup Python id: setup-python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: x64 - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- + # - name: Get pip cache dir + # id: pip-cache + # run: | + # echo "::set-output name=dir::$(pip cache dir)" + # - name: pip cache + # uses: actions/cache@v2 + # with: + # path: | + # ${{ steps.pip-cache.outputs.dir }} + # /opt/hostedtoolcache/Python + # /Users/runner/hostedtoolcache/Python + # key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} + # restore-keys: | + # ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: | + pip install uv + # - name: Install pip-tools + # run: pip install pip-tools - name: Install dependencies - run: make install-python-ci-dependencies + run: make install-python-ci-dependencies-uv - name: Test Python run: make test-python-unit From 2ba3708828bf7be7fa8a17b7b7e92625670433ed Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 9 Apr 2024 18:12:11 +0000 Subject: [PATCH 3/9] enable caching, change linter job Signed-off-by: tokoko --- .github/workflows/linter.yml | 23 +++++------------------ .github/workflows/unit_tests.yml | 17 +---------------- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index a1747db1356..c4558406098 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -11,31 +11,18 @@ jobs: - uses: actions/checkout@v3 - name: Setup Python id: setup-python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: "3.9" architecture: x64 - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- + cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: pip install uv - name: Install dependencies run: | - make install-python-ci-dependencies + make install-python-ci-dependencies-uv - name: Lint python run: make lint-python diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index cd47ef85dd4..bb6bf1c3e29 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -23,28 +23,13 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 - # - name: Get pip cache dir - # id: pip-cache - # run: | - # echo "::set-output name=dir::$(pip cache dir)" - # - name: pip cache - # uses: actions/cache@v2 - # with: - # path: | - # ${{ steps.pip-cache.outputs.dir }} - # /opt/hostedtoolcache/Python - # /Users/runner/hostedtoolcache/Python - # key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - # restore-keys: | - # ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- + cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: | pip install uv - # - name: Install pip-tools - # run: pip install pip-tools - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Test Python From e6400ac0980a54c8c1d54ab6f477b010a1be5e8f Mon Sep 17 00:00:00 2001 From: tokoko Date: Tue, 9 Apr 2024 18:22:26 +0000 Subject: [PATCH 4/9] change local integration tests to uv Signed-off-by: tokoko --- .../workflows/pr_local_integration_tests.yml | 23 ++++--------------- 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/pr_local_integration_tests.yml b/.github/workflows/pr_local_integration_tests.yml index 266cdcc9b9f..a35b388c026 100644 --- a/.github/workflows/pr_local_integration_tests.yml +++ b/.github/workflows/pr_local_integration_tests.yml @@ -33,32 +33,19 @@ jobs: ref: refs/pull/${{ github.event.pull_request.number }}/merge submodules: recursive - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 id: setup-python with: python-version: ${{ matrix.python-version }} architecture: x64 - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- + cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: pip install uv - name: Install dependencies - run: make install-python-ci-dependencies + run: make install-python-ci-dependencies-uv - name: Test local integration tests if: ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak run: make test-python-integration-local From 8f3b362f1659c218e2ba774cf6cc1d351320407b Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 10 Apr 2024 04:30:21 +0000 Subject: [PATCH 5/9] change all installs to uv Signed-off-by: tokoko --- .github/workflows/linter.yml | 1 - .github/workflows/master_only.yml | 22 ++++--------------- .github/workflows/nightly-ci.yml | 22 ++++--------------- .github/workflows/pr_integration_tests.yml | 22 ++++--------------- .../workflows/pr_local_integration_tests.yml | 1 - .github/workflows/unit_tests.yml | 1 - 6 files changed, 12 insertions(+), 57 deletions(-) diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index c4558406098..f235b6f3bac 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -15,7 +15,6 @@ jobs: with: python-version: "3.9" architecture: x64 - cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" diff --git a/.github/workflows/master_only.yml b/.github/workflows/master_only.yml index 225f24a828a..bdea29d0852 100644 --- a/.github/workflows/master_only.yml +++ b/.github/workflows/master_only.yml @@ -81,7 +81,7 @@ jobs: --health-timeout 5s --health-retries 5 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - name: Setup Python id: setup-python uses: actions/setup-python@v3 @@ -106,27 +106,13 @@ jobs: aws-region: us-west-2 - name: Use AWS CLI run: aws sts get-caller-identity - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: pip install uv - name: Install dependencies - run: make install-python-ci-dependencies + run: make install-python-ci-dependencies-uv - name: Setup Redis Cluster run: | docker pull vishnunair/docker-redis-cluster:latest diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 4dea41d4ad0..6e697943bf8 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -33,7 +33,7 @@ jobs: with: ref: master - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 id: setup-python with: python-version: "3.9" @@ -145,7 +145,7 @@ jobs: ref: master submodules: recursive - name: Setup Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 id: setup-python with: python-version: ${{ matrix.python-version }} @@ -173,25 +173,11 @@ jobs: aws-region: us-west-2 - name: Use AWS CLI run: aws sts get-caller-identity - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: pip install uv - name: Install apache-arrow on ubuntu if: matrix.os == 'ubuntu-latest' run: | diff --git a/.github/workflows/pr_integration_tests.yml b/.github/workflows/pr_integration_tests.yml index 5e7287351b6..09100a39d17 100644 --- a/.github/workflows/pr_integration_tests.yml +++ b/.github/workflows/pr_integration_tests.yml @@ -110,7 +110,7 @@ jobs: ref: refs/pull/${{ github.event.pull_request.number }}/merge submodules: recursive - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 id: setup-python with: python-version: ${{ matrix.python-version }} @@ -133,27 +133,13 @@ jobs: aws-region: us-west-2 - name: Use AWS CLI run: aws sts get-caller-identity - - name: Get pip cache dir - id: pip-cache - run: | - echo "::set-output name=dir::$(pip cache dir)" - - name: pip cache - uses: actions/cache@v2 - with: - path: | - ${{ steps.pip-cache.outputs.dir }} - /opt/hostedtoolcache/Python - /Users/runner/hostedtoolcache/Python - key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - restore-keys: | - ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-pip- - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - - name: Install pip-tools - run: pip install pip-tools + - name: Install uv + run: pip install uv - name: Install dependencies - run: make install-python-ci-dependencies + run: make install-python-ci-dependencies-uv - name: Setup Redis Cluster run: | docker pull vishnunair/docker-redis-cluster:latest diff --git a/.github/workflows/pr_local_integration_tests.yml b/.github/workflows/pr_local_integration_tests.yml index a35b388c026..b608dfd5cee 100644 --- a/.github/workflows/pr_local_integration_tests.yml +++ b/.github/workflows/pr_local_integration_tests.yml @@ -38,7 +38,6 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 - cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index bb6bf1c3e29..a60122127c1 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -23,7 +23,6 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 - cache: 'pip' - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" From 55bb636634974fa47c881514bc69023a76bc4cb1 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 10 Apr 2024 18:27:36 +0000 Subject: [PATCH 6/9] try adding uv cache Signed-off-by: tokoko --- .github/workflows/unit_tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index a60122127c1..9ae8a15b081 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -23,6 +23,11 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 + - uses: actions/cache@v4 + id: cache-uv + with: + path: ~/.cache/uv + key: ${{ runner.os }}-python-${{ matrix.python-version }}-uv - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" From 3e1512640fdc9053a487d9601e9af7afb7287231 Mon Sep 17 00:00:00 2001 From: tokoko Date: Wed, 10 Apr 2024 19:16:51 +0000 Subject: [PATCH 7/9] fix lambda cache step name Signed-off-by: tokoko --- .github/workflows/nightly-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 6e697943bf8..4e18f00af20 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -95,13 +95,13 @@ jobs: path: ~/cache key: lambda_python_3_9 - name: Handle Cache Miss (pull public ECR image & save it to tar file) - if: steps.cache-primes.outputs.cache-hit != 'true' + if: steps.lambda_python_3_9.outputs.cache-hit != 'true' run: | mkdir -p ~/cache docker pull public.ecr.aws/lambda/python:3.9 docker save public.ecr.aws/lambda/python:3.9 -o ~/cache/lambda_python_3_9.tar - name: Handle Cache Hit (load docker image from tar file) - if: steps.cache-primes.outputs.cache-hit == 'true' + if: steps.lambda_python_3_9.outputs.cache-hit == 'true' run: | docker load -i ~/cache/lambda_python_3_9.tar - name: Build and push From 4563ace143d1b84f1bd0384277f9259c2cf6c63e Mon Sep 17 00:00:00 2001 From: tokoko Date: Thu, 11 Apr 2024 19:05:18 +0000 Subject: [PATCH 8/9] reenable caches for uv Signed-off-by: tokoko --- .github/workflows/master_only.yml | 9 +++++++++ .github/workflows/nightly-ci.yml | 11 ++++++++++- .github/workflows/pr_integration_tests.yml | 9 +++++++++ .../workflows/pr_local_integration_tests.yml | 9 +++++++++ .github/workflows/unit_tests.yml | 19 ++++++++++++++----- 5 files changed, 51 insertions(+), 6 deletions(-) diff --git a/.github/workflows/master_only.yml b/.github/workflows/master_only.yml index bdea29d0852..c355c55c23e 100644 --- a/.github/workflows/master_only.yml +++ b/.github/workflows/master_only.yml @@ -111,6 +111,15 @@ jobs: pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: pip install uv + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Setup Redis Cluster diff --git a/.github/workflows/nightly-ci.yml b/.github/workflows/nightly-ci.yml index 4e18f00af20..46397624a75 100644 --- a/.github/workflows/nightly-ci.yml +++ b/.github/workflows/nightly-ci.yml @@ -90,7 +90,7 @@ jobs: run: echo "::set-output name=DOCKER_IMAGE_TAG::`git rev-parse HEAD`" - name: Cache Public ECR Image id: lambda_python_3_9 - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/cache key: lambda_python_3_9 @@ -178,6 +178,15 @@ jobs: pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: pip install uv + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - name: Install apache-arrow on ubuntu if: matrix.os == 'ubuntu-latest' run: | diff --git a/.github/workflows/pr_integration_tests.yml b/.github/workflows/pr_integration_tests.yml index 09100a39d17..4d28c6b456c 100644 --- a/.github/workflows/pr_integration_tests.yml +++ b/.github/workflows/pr_integration_tests.yml @@ -138,6 +138,15 @@ jobs: pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: pip install uv + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Setup Redis Cluster diff --git a/.github/workflows/pr_local_integration_tests.yml b/.github/workflows/pr_local_integration_tests.yml index b608dfd5cee..be892ae9106 100644 --- a/.github/workflows/pr_local_integration_tests.yml +++ b/.github/workflows/pr_local_integration_tests.yml @@ -43,6 +43,15 @@ jobs: pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: pip install uv + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Test local integration tests diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 9ae8a15b081..832430b47a6 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -23,17 +23,26 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: x64 - - uses: actions/cache@v4 - id: cache-uv - with: - path: ~/.cache/uv - key: ${{ runner.os }}-python-${{ matrix.python-version }}-uv - name: Upgrade pip version run: | pip install --upgrade "pip>=21.3.1,<23.2" - name: Install uv run: | pip install uv + - name: Get uv cache dir + id: uv-cache + run: | + echo "::set-output name=dir::$(uv cache dir)" + - name: uv cache + uses: actions/cache@v4 + with: + path: ${{ steps.uv-cache.outputs.dir }} + key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} + - uses: actions/cache@v4 + id: cache-uv + with: + path: ~/.cache/uv + key: ${{ runner.os }}-python-${{ matrix.python-version }}-uv - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Test Python From 36338c6cb90cbeded1b6131d1d2d08b5a56b5b45 Mon Sep 17 00:00:00 2001 From: tokoko Date: Thu, 11 Apr 2024 20:06:52 +0000 Subject: [PATCH 9/9] remove dangling cache step Signed-off-by: tokoko --- .github/workflows/unit_tests.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 832430b47a6..631c0e665c0 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -38,11 +38,6 @@ jobs: with: path: ${{ steps.uv-cache.outputs.dir }} key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }} - - uses: actions/cache@v4 - id: cache-uv - with: - path: ~/.cache/uv - key: ${{ runner.os }}-python-${{ matrix.python-version }}-uv - name: Install dependencies run: make install-python-ci-dependencies-uv - name: Test Python