99 - v*
1010 pull_request :
1111 branches :
12- - master
13- - main
14- - prep-**
12+ - ' **'
1513 workflow_dispatch :
1614 inputs :
1715 logLevel :
2119 tags :
2220 description : " Test scenario tags"
2321
22+ concurrency :
23+ # older builds for the same pull request number or branch should be cancelled
24+ cancel-in-progress : true
25+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
26+
2427jobs :
2528 lint :
2629 name : Check linting
2730 runs-on : ubuntu-latest
2831 steps :
29- - uses : actions/checkout@v3
32+ - uses : actions/checkout@v4
3033 - name : Set up Python
3134 uses : actions/setup-python@v4
3235 with :
33- python-version : ' 3.8 '
36+ python-version : ' 3.9 '
3437 - name : Display Python version
3538 run : python -c "import sys; import os; print(\"\n\".join(os.environ[\"PATH\"].split(os.pathsep))); print(sys.version); print(sys.executable);"
3639 - name : Upgrade setuptools, pip and wheel
3942 run : python -m pip install tox>=4
4043 - name : Set PY
4144 run : echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
42- - uses : actions/cache@v3
45+ - uses : actions/cache@v4
4346 with :
4447 path : ~/.cache/pre-commit
4548 key : pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
5154 runs-on : ubuntu-latest
5255 strategy :
5356 matrix :
54- python-version : ["3.8 ", "3.9 ", "3.10 ", "3.11 ", "3.12 "]
57+ python-version : ["3.9 ", "3.10 ", "3.11 ", "3.12 ", "3.13 "]
5558 steps :
56- - uses : actions/checkout@v3
59+ - uses : actions/checkout@v4
5760 - name : Set up Python
5861 uses : actions/setup-python@v4
5962 with :
@@ -70,17 +73,17 @@ jobs:
7073 strategy :
7174 matrix :
7275 os :
73- - image : ubuntu-20.04
76+ - image : ubuntu-latest
7477 id : manylinux_x86_64
75- - image : ubuntu-20.04
78+ - image : ubuntu-latest
7679 id : manylinux_aarch64
77- - image : windows-2019
80+ - image : windows-latest
7881 id : win_amd64
7982 - image : macos-latest
8083 id : macosx_x86_64
8184 - image : macos-latest
8285 id : macosx_arm64
83- python-version : ["3.8 ", "3.9 ", "3.10 ", "3.11 ", "3.12 "]
86+ python-version : ["3.9 ", "3.10 ", "3.11 ", "3.12 ", "3.13 "]
8487 name : Build ${{ matrix.os.id }}-py${{ matrix.python-version }}
8588 runs-on : ${{ matrix.os.image }}
8689 steps :
@@ -93,10 +96,13 @@ jobs:
9396 if : ${{ matrix.os.id == 'manylinux_aarch64' }}
9497 uses : docker/setup-qemu-action@v2
9598 with :
99+ # xref https://github.com/docker/setup-qemu-action/issues/188
100+ # xref https://github.com/tonistiigi/binfmt/issues/215
101+ image : tonistiigi/binfmt:qemu-v8.1.5
96102 platforms : all
97- - uses : actions/checkout@v3
103+ - uses : actions/checkout@v4
98104 - name : Building wheel
99- uses : pypa/cibuildwheel@v2.16.5
105+ uses : pypa/cibuildwheel@v2.21.3
100106 env :
101107 CIBW_BUILD : cp${{ env.shortver }}-${{ matrix.os.id }}
102108 MACOSX_DEPLOYMENT_TARGET : 10.14 # Should be kept in sync with ci/build_darwin.sh
@@ -105,8 +111,9 @@ jobs:
105111 - name : Show wheels generated
106112 run : ls -lh dist
107113 shell : bash
108- - uses : actions/upload-artifact@v3
114+ - uses : actions/upload-artifact@v4
109115 with :
116+ include-hidden-files : true
110117 name : ${{ matrix.os.id }}_py${{ matrix.python-version }}
111118 path : dist/
112119
@@ -122,18 +129,36 @@ jobs:
122129 download_name : manylinux_x86_64
123130 - image_name : macos-latest
124131 download_name : macosx_x86_64
125- - image_name : windows-2019
132+ - image_name : windows-latest
126133 download_name : win_amd64
127- python-version : ["3.8 ", "3.9 ", "3.10 ", "3.11 ", "3.12 "]
134+ python-version : ["3.9 ", "3.10 ", "3.11 ", "3.12 ", "3.13 "]
128135 cloud-provider : [aws, azure, gcp]
136+ # TODO: When there are prebuilt wheels accessible for our dependencies (i.e. numpy)
137+ # for Python 3.13 windows runs can be re-enabled. Currently, according to numpy:
138+ # "Numpy built with MINGW-W64 on Windows 64 bits is experimental, and only available for
139+ # testing. You are advised not to use it for production."
140+ exclude :
141+ - os :
142+ image_name : windows-latest
143+ download_name : win_amd64
144+ python-version : " 3.13"
129145 steps :
130- - uses : actions/checkout@v3
146+ - uses : actions/checkout@v4
131147 - name : Set up Python
132148 uses : actions/setup-python@v4
133149 with :
134150 python-version : ${{ matrix.python-version }}
135151 - name : Display Python version
136152 run : python -c "import sys; print(sys.version)"
153+ - name : Set up Java
154+ uses : actions/setup-java@v4 # for wiremock
155+ with :
156+ java-version : 11
157+ distribution : ' temurin'
158+ java-package : ' jre'
159+ - name : Fetch Wiremock
160+ shell : bash
161+ run : curl https://repo1.maven.org/maven2/org/wiremock/wiremock-standalone/3.11.0/wiremock-standalone-3.11.0.jar --output .wiremock/wiremock-standalone.jar
137162 - name : Setup parameters file
138163 shell : bash
139164 env :
@@ -142,7 +167,7 @@ jobs:
142167 gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETERS_SECRET" \
143168 .github/workflows/parameters/public/parameters_${{ matrix.cloud-provider }}.py.gpg > test/parameters.py
144169 - name : Download wheel(s)
145- uses : actions/download-artifact@v3
170+ uses : actions/download-artifact@v4
146171 with :
147172 name : ${{ matrix.os.download_name }}_py${{ matrix.python-version }}
148173 path : dist
@@ -164,8 +189,9 @@ jobs:
164189 - name : Combine coverages
165190 run : python -m tox run -e coverage --skip-missing-interpreters false
166191 shell : bash
167- - uses : actions/upload-artifact@v3
192+ - uses : actions/upload-artifact@v4
168193 with :
194+ include-hidden-files : true
169195 name : coverage_${{ matrix.os.download_name }}-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
170196 path : |
171197 .tox/.coverage
@@ -179,12 +205,14 @@ jobs:
179205 fail-fast : false
180206 matrix :
181207 os :
182- - image_name : ubuntu-latest
208+ # Because old the version 3.0.2 of snowflake-connector-python depends on oscrypto which causes conflicts with higher versions of libssl
209+ # TODO: It can be changed to ubuntu-latest, when python sf connector version in tox is above 3.4.0
210+ - image_name : ubuntu-22.04
183211 download_name : linux
184- python-version : [3.8 ]
212+ python-version : [3.9 ]
185213 cloud-provider : [aws]
186214 steps :
187- - uses : actions/checkout@v3
215+ - uses : actions/checkout@v4
188216 - name : Set up Python
189217 uses : actions/setup-python@v4
190218 with :
@@ -220,10 +248,10 @@ jobs:
220248 os :
221249 - image_name : ubuntu-latest
222250 download_name : linux
223- python-version : [3.8 ]
251+ python-version : [3.9 ]
224252 cloud-provider : [aws]
225253 steps :
226- - uses : actions/checkout@v3
254+ - uses : actions/checkout@v4
227255 - name : Set up Python
228256 uses : actions/setup-python@v4
229257 with :
@@ -243,15 +271,15 @@ jobs:
243271 shell : bash
244272
245273 test-fips :
246- name : Test FIPS linux-3.8 -${{ matrix.cloud-provider }}
274+ name : Test FIPS linux-3.9 -${{ matrix.cloud-provider }}
247275 needs : build
248276 runs-on : ubuntu-latest
249277 strategy :
250278 fail-fast : false
251279 matrix :
252280 cloud-provider : [aws]
253281 steps :
254- - uses : actions/checkout@v3
282+ - uses : actions/checkout@v4
255283 - name : Setup parameters file
256284 shell : bash
257285 env :
@@ -260,24 +288,25 @@ jobs:
260288 gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETERS_SECRET" \
261289 .github/workflows/parameters/public/parameters_${{ matrix.cloud-provider }}.py.gpg > test/parameters.py
262290 - name : Download wheel(s)
263- uses : actions/download-artifact@v3
291+ uses : actions/download-artifact@v4
264292 with :
265- name : manylinux_x86_64_py3.8
293+ name : manylinux_x86_64_py3.9
266294 path : dist
267295 - name : Show wheels downloaded
268296 run : ls -lh dist
269297 shell : bash
270298 - name : Run tests
271299 run : ./ci/test_fips_docker.sh
272300 env :
273- PYTHON_VERSION : 3.8
301+ PYTHON_VERSION : 3.9
274302 cloud_provider : ${{ matrix.cloud-provider }}
275303 PYTEST_ADDOPTS : --color=yes --tb=short
276304 TOX_PARALLEL_NO_SPINNER : 1
277305 shell : bash
278- - uses : actions/upload-artifact@v3
306+ - uses : actions/upload-artifact@v4
279307 with :
280- name : coverage_linux-fips-3.8-${{ matrix.cloud-provider }}
308+ include-hidden-files : true
309+ name : coverage_linux-fips-3.9-${{ matrix.cloud-provider }}
281310 path : |
282311 .coverage
283312 coverage.xml
@@ -289,15 +318,15 @@ jobs:
289318 strategy :
290319 fail-fast : false
291320 matrix :
292- python-version : ["3.8 ", "3.9 ", "3.10 ", "3.11 ", "3.12 "]
321+ python-version : ["3.9 ", "3.10 ", "3.11 ", "3.12 ", "3.13 "]
293322 cloud-provider : [aws]
294323 steps :
295324 - name : Set shortver
296325 run : echo "shortver=${longver//./}" >> $GITHUB_ENV
297326 env :
298327 longver : ${{ matrix.python-version }}
299328 shell : bash
300- - uses : actions/checkout@v3
329+ - uses : actions/checkout@v4
301330 - name : Setup parameters file
302331 shell : bash
303332 env :
@@ -306,7 +335,7 @@ jobs:
306335 gpg --quiet --batch --yes --decrypt --passphrase="$PARAMETERS_SECRET" \
307336 .github/workflows/parameters/public/parameters_${{ matrix.cloud-provider }}.py.gpg > test/parameters.py
308337 - name : Download wheel(s)
309- uses : actions/download-artifact@v3
338+ uses : actions/download-artifact@v4
310339 with :
311340 name : manylinux_x86_64_py${{ matrix.python-version }}
312341 path : dist
@@ -321,8 +350,9 @@ jobs:
321350 PYTEST_ADDOPTS : --color=yes --tb=short
322351 TOX_PARALLEL_NO_SPINNER : 1
323352 shell : bash
324- - uses : actions/upload-artifact@v3
353+ - uses : actions/upload-artifact@v4
325354 with :
355+ include-hidden-files : true
326356 name : coverage_linux-lambda-${{ matrix.python-version }}-${{ matrix.cloud-provider }}
327357 path : |
328358 .coverage.py${{ env.shortver }}-lambda-ci
@@ -334,14 +364,14 @@ jobs:
334364 needs : [lint, test, test-fips, test-lambda]
335365 runs-on : ubuntu-latest
336366 steps :
337- - uses : actions/checkout@v3
338- - uses : actions/download-artifact@v3
367+ - uses : actions/checkout@v4
368+ - uses : actions/download-artifact@v4
339369 with :
340370 path : artifacts
341371 - name : Set up Python
342372 uses : actions/setup-python@v4
343373 with :
344- python-version : ' 3.8 '
374+ python-version : ' 3.9 '
345375 - name : Display Python version
346376 run : python -c "import sys; print(sys.version)"
347377 - name : Upgrade setuptools and pip
@@ -364,15 +394,18 @@ jobs:
364394 - name : Combine coverages
365395 run : python -m tox run -e coverage
366396 - name : Publish html coverage
367- uses : actions/upload-artifact@v3
397+ uses : actions/upload-artifact@v4
368398 with :
399+ include-hidden-files : true
369400 name : overall_cov_html
370401 path : .tox/htmlcov
371402 - name : Publish xml coverage
372- uses : actions/upload-artifact@v3
403+ uses : actions/upload-artifact@v4
373404 with :
405+ include-hidden-files : true
374406 name : overall_cov_xml
375407 path : .tox/coverage.xml
376- - uses : codecov/codecov-action@v3
408+ - uses : codecov/codecov-action@v4
377409 with :
378410 files : .tox/coverage.xml
411+ token : ${{ secrets.CODECOV_TOKEN }}
0 commit comments