@@ -32,13 +32,14 @@ jobs:
3232 fail-fast : false
3333 matrix :
3434 python_version :
35- - 3.8
36- - 3.9
35+ - " 3.9"
3736 - " 3.10"
3837 - " 3.11"
3938 - " 3.12"
39+ - " 3.13"
4040 # cryptography is not compatible with older PyPy versions
41- - " pypy-3.8"
41+ - " pypy-3.9"
42+ - " pypy-3.10"
4243 os :
4344 - ubuntu-latest
4445
7475 tox -e py${{ matrix.python_version }}
7576
7677 - name : Run dist install checks tox target
77- # NOTE: 3.12 will be failing until we migrate away from setup.py
78- if : ${{ matrix.python_version != 'pypy-3.7' && matrix.python_version != 'pypy-3.8' && matrix.python_version != '3.12-dev' }}
78+ if : ${{ matrix.python_version != 'pypy-3.9' && matrix.python_version != 'pypy-3.10' }}
7979 run : |
8080 tox -e py${{ matrix.python_version }}-dist,py${{ matrix.python_version }}-dist-wheel
8181
8585
8686 strategy :
8787 matrix :
88- python_version : [3.8 ]
88+ python_version : [3.9 ]
8989
9090 steps :
9191 - uses : actions/checkout@master
@@ -119,7 +119,7 @@ jobs:
119119 tox -e coverage-ci
120120
121121 - name : Upload Coverage to codecov.io
122- uses : codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5 .0
122+ uses : codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4 .0
123123 with :
124124 # We utilize secret for more realiable builds. Without secret being set, upload step
125125 # fails fairly often.
@@ -133,7 +133,7 @@ jobs:
133133
134134 strategy :
135135 matrix :
136- python_version : [3.8 ]
136+ python_version : [3.9 ]
137137
138138 steps :
139139 - uses : actions/checkout@master
@@ -170,13 +170,90 @@ jobs:
170170 run : |
171171 tox -e black-check,isort-check,pyupgrade,checks,import-timings,lint,pylint,mypy
172172
173+ build_test_release_artifact :
174+ name : Build and Test Release Artifact
175+ runs-on : ubuntu-latest
176+
177+ strategy :
178+ matrix :
179+ python_version : [3.9]
180+
181+ steps :
182+ - uses : actions/checkout@master
183+ with :
184+ fetch-depth : 1
185+
186+ - name : Use Python ${{ matrix.python_version }}
187+ uses : actions/setup-python@v5
188+ with :
189+ python-version : ${{ matrix.python_version }}
190+
191+ - name : Cache Python Dependencies
192+ uses : actions/cache@v4
193+ with :
194+ path : ~/.cache/pip
195+ key : ${{ runner.os }}-pip-${{ hashFiles('requirements-lint.txt') }}
196+ restore-keys : |
197+ ${{ runner.os }}-pip-
198+
199+ - name : Install Python Dependencies
200+ run : |
201+ pip install -r requirements-ci.txt
202+ pip install "build==1.2.2"
203+
204+ - name : Build Release Artifact
205+ run : |
206+ pip list installed
207+ python -m build -vv
208+
209+ - name : Set Environment
210+ run : |
211+ export PYTHONPATH=.
212+ export VERSION=$(python -c "import libcloud ; print(libcloud.__version__)")
213+ echo "VERSION=${VERSION}" >> "$GITHUB_ENV"
214+
215+ - name : Verify Tarball Release Artifact
216+ run : |
217+ # Verify tarball file exists
218+ export TARBALL_FILENAME="apache_libcloud-${VERSION}.tar.gz"
219+
220+ ls -la "dist/${TARBALL_FILENAME}"
221+
222+ cd dist/
223+
224+ # Unpack tarball and verify + run the tests
225+ tar -xzvf "${TARBALL_FILENAME}"
226+
227+ cd "apache_libcloud-${VERSION}/"
228+ tox -c tox.ini -epy3.9
229+
230+ - name : Verify Wheel Release Artifact
231+ run : |
232+ # Verify wheel file exists
233+ export WHEEL_FILENAME="apache_libcloud-${VERSION}-py3-none-any.whl"
234+
235+ ls -la "dist/${WHEEL_FILENAME}"
236+
237+ cd dist/
238+
239+ # Unpack wheel and verify + run tests
240+ unzip "${WHEEL_FILENAME}" -d "wheel"
241+ cd wheel
242+
243+ # Since wheel doesn't include those files, we need to manually copy them over from
244+ # repo root so we can run the tests
245+ cp ../../tox.ini .
246+ cp ../../requirements-tests.txt .
247+ cp ../../libcloud/test/secrets.py-dist libcloud/test/secrets.py-dist
248+ tox -c tox.ini -epy3.9
249+
173250 build_test_docker_image :
174251 name : Build and Verify Docker Image
175252 runs-on : ubuntu-latest
176253
177254 strategy :
178255 matrix :
179- python_version : [3.8 ]
256+ python_version : [3.9 ]
180257
181258 steps :
182259 - uses : actions/checkout@master
@@ -200,7 +277,7 @@ jobs:
200277
201278 strategy :
202279 matrix :
203- python_version : [3.8 ]
280+ python_version : [3.9 ]
204281
205282 steps :
206283 - uses : actions/checkout@master
@@ -268,7 +345,7 @@ jobs:
268345
269346 strategy :
270347 matrix :
271- python_version : [3.8 ]
348+ python_version : [3.9 ]
272349
273350 steps :
274351 - uses : actions/checkout@master
@@ -307,7 +384,7 @@ jobs:
307384
308385 strategy :
309386 matrix :
310- python_version : [3.8 ]
387+ python_version : [3.9 ]
311388
312389 steps :
313390 - name : Print Environment Info
0 commit comments