55 test :
66 strategy :
77 matrix :
8- python_version : ['3.10', '3.12', '3.13']
8+ python_version : ['3.10', '3.12', '3.13', '3.14' ]
99 os : [ubuntu-latest]
1010 runs-on : ${{ matrix.os }}
1111 timeout-minutes : 30
2626 PWN_UBUNTU_ARCHIVE_URL : http://localhost:3002/
2727 PWN_GITLAB_LIBCDB_URL : http://localhost:3003/
2828 steps :
29- - uses : actions/checkout@v5
29+ - uses : actions/checkout@v6
3030 with :
3131 fetch-depth : 20
3232
4242 echo "date=$(/bin/date -u "+%Y%m%d%H%M%S")" >> $GITHUB_OUTPUT
4343
4444 - name : Cache for libcdb requests
45- uses : actions/cache@v4
45+ uses : actions/cache@v5
4646 with :
4747 path : ~/libcdb-cache
4848 key : libcdb-python${{ matrix.python_version }}-${{ steps.fix-perms.outputs.date }}
@@ -126,9 +126,13 @@ jobs:
126126 - name : Install dependencies
127127 run : |
128128 uv pip install --upgrade --editable .
129+ # Pin to known working version until 2.1.5 is out. https://github.com/unicorn-engine/unicorn/issues/2134
130+ uv pip install 'unicorn==2.1.2' setuptools
129131
130132 - name : Sanity checks
131- run : PWNLIB_NOTERM=1 python -bb -c 'from pwn import *; print(pwnlib.term.term_mode)'
133+ run : |
134+ PWNLIB_NOTERM=1 python -bb -c 'from pwn import *; print(pwnlib.term.term_mode)'
135+ python -c "import hashlib; assert hashlib.algorithms_guaranteed == {'sha256', 'blake2s', 'sha3_384', 'shake_256', 'sha1', 'md5', 'shake_128', 'sha224', 'sha512', 'blake2b', 'sha3_512', 'sha3_224', 'sha3_256', 'sha384'}"
132136
133137 - name : Install documentation dependencies
134138 run : uv pip install -r docs/requirements.txt
@@ -221,14 +225,14 @@ jobs:
221225 run : |
222226 uv build
223227
224- - uses : actions/upload-artifact@v4
228+ - uses : actions/upload-artifact@v7
225229 if : matrix.python_version == '3.10'
226230 with :
227231 name : packages
228232 path : dist/
229233 include-hidden-files : true
230234
231- - uses : actions/upload-artifact@v4
235+ - uses : actions/upload-artifact@v7
232236 with :
233237 name : coverage-${{ matrix.python_version }}
234238 path : .coverage*
@@ -245,7 +249,7 @@ jobs:
245249 timeout-minutes : 30
246250 continue-on-error : true
247251 steps :
248- - uses : actions/checkout@v5
252+ - uses : actions/checkout@v6
249253
250254 - name : Set up Python 3.12
251255 uses : astral-sh/setup-uv@v7
@@ -268,7 +272,7 @@ jobs:
268272 libc6-dbg
269273
270274 - name : Cache for avd
271- uses : actions/cache@v4
275+ uses : actions/cache@v5
272276 id : cache-avd
273277 with :
274278 path : |
@@ -302,7 +306,7 @@ jobs:
302306 source .android.env
303307 PWNLIB_NOTERM=1 python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest docs/source/adb.rst
304308
305- - uses : actions/upload-artifact@v4
309+ - uses : actions/upload-artifact@v7
306310 with :
307311 name : coverage-android
308312 path : .coverage*
@@ -311,9 +315,8 @@ jobs:
311315 windows-test :
312316 runs-on : windows-latest
313317 timeout-minutes : 30
314- continue-on-error : true
315318 steps :
316- - uses : actions/checkout@v5
319+ - uses : actions/checkout@v6
317320
318321 - name : Set up Python 3.12
319322 uses : astral-sh/setup-uv@v7
@@ -341,21 +344,21 @@ jobs:
341344 run : |
342345 python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest
343346
344- - uses : actions/upload-artifact@v4
347+ - uses : actions/upload-artifact@v7
345348 with :
346349 name : coverage-windows
347350 path : .coverage*
348351 include-hidden-files : true
349352
350353 upload-coverage :
351354 runs-on : ubuntu-latest
352- needs : test
355+ needs : [ test, android-test, windows-test]
353356 steps :
354- - uses : actions/checkout@v5
357+ - uses : actions/checkout@v6
355358 with :
356359 fetch-depth : 20
357360
358- - uses : actions/download-artifact@v5
361+ - uses : actions/download-artifact@v8
359362 with :
360363 pattern : coverage-*
361364 merge-multiple : true
@@ -375,7 +378,7 @@ jobs:
375378 if : github.repository_owner == 'Gallopsled' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/heads/') && endsWith(github.event.ref, '-staging')
376379 needs : test
377380 steps :
378- - uses : actions/checkout@v5
381+ - uses : actions/checkout@v6
379382 with :
380383 fetch-depth : 20
381384 - name : Push changes to protected branch
@@ -397,7 +400,7 @@ jobs:
397400 needs : test
398401 steps :
399402 - name : Download artifacts
400- uses : actions/download-artifact@v5
403+ uses : actions/download-artifact@v8
401404 with :
402405 name : packages
403406 path : dist
0 commit comments