@@ -103,15 +103,27 @@ jobs:
103103 strategy :
104104 fail-fast : false
105105 matrix :
106- os :
107- - image_name : ubuntu-latest-64-cores
108- download_name : linux
109- - image_name : macos-latest
110- download_name : macos
111- - image_name : windows-latest-64-cores
112- download_name : windows
113- python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"]
114- cloud-provider : [aws, azure, gcp]
106+ include :
107+ # Ubuntu + rotating cloud providers
108+ - { os: {image_name: ubuntu-latest-64-cores, download_name: linux}, python-version: "3.9", cloud-provider: aws }
109+ - { os: {image_name: ubuntu-latest-64-cores, download_name: linux}, python-version: "3.10", cloud-provider: azure }
110+ - { os: {image_name: ubuntu-latest-64-cores, download_name: linux}, python-version: "3.11", cloud-provider: gcp }
111+ - { os: {image_name: ubuntu-latest-64-cores, download_name: linux}, python-version: "3.12", cloud-provider: aws }
112+ - { os: {image_name: ubuntu-latest-64-cores, download_name: linux}, python-version: "3.13", cloud-provider: azure }
113+
114+ # macOS + rotating cloud providers
115+ - { os: {image_name: macos-latest, download_name: macos}, python-version: "3.9", cloud-provider: gcp }
116+ - { os: {image_name: macos-latest, download_name: macos}, python-version: "3.10", cloud-provider: aws }
117+ - { os: {image_name: macos-latest, download_name: macos}, python-version: "3.11", cloud-provider: azure }
118+ - { os: {image_name: macos-latest, download_name: macos}, python-version: "3.12", cloud-provider: gcp }
119+ - { os: {image_name: macos-latest, download_name: macos}, python-version: "3.13", cloud-provider: aws }
120+
121+ # Windows + rotating cloud providers
122+ - { os: {image_name: windows-latest-64-cores, download_name: windows}, python-version: "3.9", cloud-provider: azure }
123+ - { os: {image_name: windows-latest-64-cores, download_name: windows}, python-version: "3.10", cloud-provider: gcp }
124+ - { os: {image_name: windows-latest-64-cores, download_name: windows}, python-version: "3.11", cloud-provider: aws }
125+ - { os: {image_name: windows-latest-64-cores, download_name: windows}, python-version: "3.12", cloud-provider: azure }
126+ - { os: {image_name: windows-latest-64-cores, download_name: windows}, python-version: "3.13", cloud-provider: gcp }
115127 steps :
116128 - name : Checkout Code
117129 uses : actions/checkout@v4
@@ -170,6 +182,8 @@ jobs:
170182 cloud_provider : ${{ matrix.cloud-provider }}
171183 PYTEST_ADDOPTS : --color=yes --tb=short
172184 TOX_PARALLEL_NO_SPINNER : 1
185+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
186+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
173187 shell : bash
174188 # SNOW-2213578 : Remove the test below and run udf tests for 3.13
175189 - if : ${{ matrix.python-version == '3.13' }}
@@ -180,6 +194,8 @@ jobs:
180194 cloud_provider : ${{ matrix.cloud-provider }}
181195 PYTEST_ADDOPTS : --color=yes --tb=short
182196 TOX_PARALLEL_NO_SPINNER : 1
197+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
198+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
183199 shell : bash
184200 - name : Run data source tests
185201 # psycopg2 is not supported on macos 3.9
@@ -307,6 +323,8 @@ jobs:
307323 cloud_provider : ${{ matrix.cloud-provider }}
308324 PYTEST_ADDOPTS : --color=yes --tb=short --disable_sql_simplifier
309325 TOX_PARALLEL_NO_SPINNER : 1
326+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
327+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
310328 shell : bash
311329 - name : Combine coverages
312330 run : python -m tox -e coverage --skip-missing-interpreters false
@@ -376,6 +394,8 @@ jobs:
376394 TOX_PARALLEL_NO_SPINNER : 1
377395 # Specify SNOWFLAKE_IS_PYTHON_RUNTIME_TEST: 1 when adding >= python3.12 with no server-side support
378396 # For example, see https://github.com/snowflakedb/snowpark-python/pull/681
397+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
398+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
379399 shell : bash
380400 - name : Combine coverages
381401 run : python -m tox -e coverage --skip-missing-interpreters false
@@ -397,7 +417,13 @@ jobs:
397417 strategy :
398418 fail-fast : false
399419 matrix :
400- os : [macos-latest, windows-latest, ubuntu-latest]
420+ os :
421+ - download_name : macos
422+ image_name : macos-latest
423+ - download_name : windows
424+ image_name : windows-latest
425+ - download_name : ubuntu
426+ image_name : ubuntu-latest
401427 python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"]
402428 cloud-provider : [azure]
403429 steps :
@@ -523,6 +549,8 @@ jobs:
523549 PYTEST_ADDOPTS : --color=yes --tb=short
524550 TOX_PARALLEL_NO_SPINNER : 1
525551 SNOWFLAKE_IS_PYTHON_RUNTIME_TEST : 1
552+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
553+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
526554 TZ : EST
527555 shell : bash
528556
@@ -572,7 +600,8 @@ jobs:
572600 run : uv pip install -U setuptools pip wheel --system
573601 - name : Install tox
574602 run : uv pip install tox --system
575- - if : ${{ contains('macos', matrix.os.download_name) }}
603+ # SNOW-2213578: Re-enable the test for 3.13
604+ - if : ${{ contains('macos', matrix.os.download_name) && matrix.python-version != '3.13' }}
576605 name : Run doctests
577606 run : python -m tox -e "py${PYTHON_VERSION}-doctest-notudf-ci"
578607 env :
@@ -589,6 +618,8 @@ jobs:
589618 cloud_provider : ${{ matrix.cloud-provider }}
590619 PYTEST_ADDOPTS : --color=yes --tb=short --disable_cte_optimization
591620 TOX_PARALLEL_NO_SPINNER : 1
621+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
622+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
592623 shell : bash
593624 # SNOW-2213578 : Remove the test below and run udf tests for 3.13
594625 - if : ${{ matrix.python-version == '3.13' }}
@@ -599,6 +630,8 @@ jobs:
599630 cloud_provider : ${{ matrix.cloud-provider }}
600631 PYTEST_ADDOPTS : --color=yes --tb=short --disable_cte_optimization
601632 TOX_PARALLEL_NO_SPINNER : 1
633+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
634+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
602635 shell : bash
603636 - name : Combine coverages
604637 run : python -m tox -e coverage --skip-missing-interpreters false
@@ -686,6 +719,8 @@ jobs:
686719 cloud_provider : ${{ matrix.cloud-provider }}
687720 PYTEST_ADDOPTS : --color=yes --tb=short --join_alias_fix
688721 TOX_PARALLEL_NO_SPINNER : 1
722+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
723+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
689724 shell : bash
690725 - if : ${{ matrix.python-version == '3.12' }}
691726 name : Run tests (excluding doctests and udf tests)
@@ -696,6 +731,8 @@ jobs:
696731 PYTEST_ADDOPTS : --color=yes --tb=short --join_alias_fix
697732 TOX_PARALLEL_NO_SPINNER : 1
698733 SNOWFLAKE_IS_PYTHON_RUNTIME_TEST : 1
734+ SNOWPARK_PYTHON_API_TEST_BUCKET_PATH : ${{ secrets.SNOWPARK_PYTHON_API_TEST_BUCKET_PATH }}
735+ SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION : ${{ vars.SNOWPARK_PYTHON_API_S3_STORAGE_INTEGRATION }}
699736 shell : bash
700737 - name : Combine coverages
701738 run : python -m tox -e coverage --skip-missing-interpreters false
0 commit comments