vendor: actions/setup-python@v5
e2e-cache freethread / Test pip (Python 3.13.0t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, windows-latest, caching path) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-22.04-arm) (push) Waiting to run
e2e tests / Test setup-python (macos-13) (push) Waiting to run
e2e tests / Test setup-python (macos-latest) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-22.04) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-24.04-arm) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-latest) (push) Waiting to run
e2e tests / Test setup-python (windows-latest) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / check-latest (macos-13) (push) Waiting to run
Validate GraalPy e2e / check-latest (macos-latest) (push) Waiting to run
Validate GraalPy e2e / check-latest (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 windows-latest (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / check-latest (macos-13) (push) Waiting to run
Validate PyPy e2e / check-latest (macos-latest) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-22.04) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-22.04-arm) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-24.04-arm) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / check-latest (windows-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (macos-13) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (macos-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-22.04) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (windows-latest) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-24.04-arm, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / check-latest (windows-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04-arm, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04-arm, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-24.04-arm, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-13, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-13, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (windows-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (macos-13) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (macos-latest) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-22.04) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-latest) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (windows-latest) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.10 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.9) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (macos-13) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (macos-latest) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-22.04) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-latest) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-13) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, windows-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, macos-13) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.1, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.2, macos-latest) (push) Waiting to run
e2e-cache freethread / Test poetry (Python 3.13.0, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.0t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.1t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pip (Python 3.13.2t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-13, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, macos-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.0t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.1t, windows-latest, caching path) (push) Waiting to run
e2e-cache freethread / Test pipenv (Python 3.13.2t, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, macos-13) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, macos-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-24.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-22.04) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-22.04-arm) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, ubuntu-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.10, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.11, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.12, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.13, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python 3.9, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.10-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.11-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test poetry (Python pypy-3.9-v7.x, windows-latest) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.11-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.10, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.11, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.12, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.13, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python 3.9, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.10-v7.x, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pip (Python pypy-3.9-v7.x, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-13, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, macos-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-22.04, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-22.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-24.04-arm, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.11-v7.x, ubuntu-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.10, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.11, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.12, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python 3.13, windows-latest, caching path) (push) Waiting to run
e2e-cache / Test pipenv (Python pypy-3.10-v7.x, windows-latest, caching path) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-22.04-arm) (push) Waiting to run
e2e tests / Test setup-python (macos-13) (push) Waiting to run
e2e tests / Test setup-python (macos-latest) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-22.04) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-24.04-arm) (push) Waiting to run
e2e tests / Test setup-python (ubuntu-latest) (push) Waiting to run
e2e tests / Test setup-python (windows-latest) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-22.3 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.0 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-23.1 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 macos-13 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 macos-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-22.04 (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-22.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-24.04-arm (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy-24.1 ubuntu-latest (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy22.3 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.0 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy23.1 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 macos-13 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 macos-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-22.04 (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate GraalPy e2e / Setup GraalPy graalpy24.1 ubuntu-latest (noenv) (push) Waiting to run
Validate GraalPy e2e / check-latest (macos-13) (push) Waiting to run
Validate GraalPy e2e / check-latest (macos-latest) (push) Waiting to run
Validate GraalPy e2e / check-latest (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-13 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.12rc1 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-2.7-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-nightly windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.16 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.3.x windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy-3.10-v7.x windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-v7.3.17 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11-v7.3.19 windows-latest (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 windows-latest (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-13 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-14 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on macos-15 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-22.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-22.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-24.04 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on ubuntu-24.04-arm (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2019 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2022 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-2.7 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.10 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Check non-eol pypy-3.11 on windows-2025 (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-13 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 macos-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04 (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 ubuntu-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy2.7 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.10-nightly windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.11 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / Setup PyPy pypy3.9 windows-latest (noenv) (push) Waiting to run
Validate PyPy e2e / check-latest (macos-13) (push) Waiting to run
Validate PyPy e2e / check-latest (macos-latest) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-22.04) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-22.04-arm) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-24.04-arm) (push) Waiting to run
Validate PyPy e2e / check-latest (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / check-latest (windows-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (macos-13) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (macos-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-22.04) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (ubuntu-latest) (push) Waiting to run
Validate PyPy e2e / setup-pypy-multiple-versions (windows-latest) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-24.04-arm, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest version file (push) Waiting to run
Validate Python e2e freethread / check-latest (windows-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04-arm, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04-arm, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-24.04-arm, 3.13t) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest version file without parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t-dev windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t macos-13 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t macos-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-22.04 (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t ubuntu-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.14t windows-latest (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-13 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t macos-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.0t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2t windows-latest (noenv) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-13, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-13, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-latest, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (macos-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / check-latest (ubuntu-22.04, 3.13t) (push) Waiting to run
Validate Python e2e freethread / check-latest (windows-latest, 3.14t-dev) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (macos-13) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (macos-latest) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-22.04) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (ubuntu-latest) (push) Waiting to run
Validate Python e2e freethread / setup-python-multiple-python-versions (windows-latest) (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-13 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 macos-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04 using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-22.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-24.04-arm using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 ubuntu-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.1 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.13.2 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14-dev windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e freethread / Setup 3.14.0-alpha.6 windows-latest using freethread input parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest version file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest version file without parameter (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 macos-13 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 macos-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-22.04 standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-22.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-24.04-arm standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 ubuntu-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup ==3.12.3 windows-latest standard pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-13 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 macos-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04 poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-22.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-24.04-arm poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 ubuntu-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.10.11 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.11.9 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.12.3 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.9.13 windows-latest poetry pyproject file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 macos-13 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 macos-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-22.04 .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-22.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-24.04-arm .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup graalpy-24.1.2 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 ubuntu-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.13.2 windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14-dev windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup pypy3.11-7.3.18 windows-latest .tool-versions file (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14.0-alpha.6 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14-dev macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14-dev ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14-dev windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 macos-13 (push) Waiting to run
Validate Python e2e / Setup 3.14 macos-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-22.04 (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-22.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-24.04-arm (push) Waiting to run
Validate Python e2e / Setup 3.14 ubuntu-latest (push) Waiting to run
Validate Python e2e / Setup 3.14 windows-latest (push) Waiting to run
Validate Python e2e / Setup 3.10 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 macos-13 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 macos-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-22.04 (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-22.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-24.04-arm (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 ubuntu-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.10 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.11 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.12 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.13 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / Setup 3.9 windows-latest (noenv) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (macos-13, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (macos-latest, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-22.04-arm, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-24.04-arm, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (ubuntu-latest, 3.9) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.10) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.11) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.12) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.13) (push) Waiting to run
Validate Python e2e / check-latest (windows-latest, 3.9) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (macos-13) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (macos-latest) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-22.04) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-22.04-arm) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-24.04-arm) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (ubuntu-latest) (push) Waiting to run
Validate Python e2e / setup-python-multiple-python-versions (windows-latest) (push) Waiting to run
This commit is contained in:
@@ -0,0 +1,360 @@
|
||||
import * as path from 'path';
|
||||
import * as core from '@actions/core';
|
||||
import * as cache from '@actions/cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as io from '@actions/io';
|
||||
import {getCacheDistributor} from '../src/cache-distributions/cache-factory';
|
||||
import {State} from '../src/cache-distributions/cache-distributor';
|
||||
|
||||
describe('restore-cache', () => {
|
||||
const pipFileLockHash =
|
||||
'f8428d7cf00ea53a5c3702f0a9cb3cc467f76cd86a34723009350c4e4b32751a';
|
||||
const requirementsHash =
|
||||
'd8110e0006d7fb5ee76365d565eef9d37df1d11598b912d3eb66d398d57a1121';
|
||||
const requirementsLinuxHash =
|
||||
'2d0ff7f46b0e120e3d3294db65768b474934242637b9899b873e6283dfd16d7c';
|
||||
const poetryLockHash =
|
||||
'f24ea1ad73968e6c8d80c16a093ade72d9332c433aeef979a0dd943e6a99b2ab';
|
||||
const poetryConfigOutput = `
|
||||
cache-dir = "/Users/patrick/Library/Caches/pypoetry"
|
||||
experimental.new-installer = false
|
||||
installer.parallel = true
|
||||
virtualenvs.create = true
|
||||
virtualenvs.in-project = true
|
||||
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/pypoetry/virtualenvs
|
||||
`;
|
||||
|
||||
// core spy
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let saveStateSpy: jest.SpyInstance;
|
||||
let getStateSpy: jest.SpyInstance;
|
||||
let setOutputSpy: jest.SpyInstance;
|
||||
|
||||
// cache spy
|
||||
let restoreCacheSpy: jest.SpyInstance;
|
||||
|
||||
// exec spy
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
|
||||
// io spy
|
||||
let whichSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(input => undefined);
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(input => undefined);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(input => undefined);
|
||||
|
||||
saveStateSpy = jest.spyOn(core, 'saveState');
|
||||
saveStateSpy.mockImplementation(input => undefined);
|
||||
|
||||
getStateSpy = jest.spyOn(core, 'getState');
|
||||
getStateSpy.mockImplementation(input => undefined);
|
||||
|
||||
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
||||
getExecOutputSpy.mockImplementation((input: string) => {
|
||||
if (input.includes('pip')) {
|
||||
return {stdout: 'pip', stderr: '', exitCode: 0};
|
||||
}
|
||||
if (input.includes('poetry')) {
|
||||
return {stdout: poetryConfigOutput, stderr: '', exitCode: 0};
|
||||
}
|
||||
if (input.includes('lsb_release')) {
|
||||
return {stdout: 'Ubuntu\n20.04', stderr: '', exitCode: 0};
|
||||
}
|
||||
|
||||
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
||||
});
|
||||
|
||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||
setOutputSpy.mockImplementation(input => undefined);
|
||||
|
||||
restoreCacheSpy = jest.spyOn(cache, 'restoreCache');
|
||||
restoreCacheSpy.mockImplementation(
|
||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||
return primaryKey;
|
||||
}
|
||||
);
|
||||
|
||||
whichSpy = jest.spyOn(io, 'which');
|
||||
whichSpy.mockImplementation(() => '/path/to/python');
|
||||
});
|
||||
|
||||
describe('Validate provided package manager', () => {
|
||||
it.each(['npm', 'pip2', 'pip21', 'pip21.3', 'pipenv32'])(
|
||||
'Throw an error because %s is not supported',
|
||||
async packageManager => {
|
||||
expect(() =>
|
||||
getCacheDistributor(packageManager, '3.8.12', undefined)
|
||||
).toThrow(`Caching for '${packageManager}' is not supported`);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('Restore dependencies', () => {
|
||||
it.each([
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/**/requirements.txt',
|
||||
requirementsHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/**/requirements-linux.txt',
|
||||
requirementsLinuxHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/requirements-linux.txt',
|
||||
requirementsLinuxHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/requirements.txt',
|
||||
requirementsHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'pipenv',
|
||||
'3.9.1',
|
||||
'__tests__/data/**/Pipfile.lock',
|
||||
pipFileLockHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'pipenv',
|
||||
'3.9.12',
|
||||
'__tests__/data/requirements.txt',
|
||||
requirementsHash,
|
||||
undefined
|
||||
],
|
||||
[
|
||||
'poetry',
|
||||
'3.9.1',
|
||||
'__tests__/data/**/poetry.lock',
|
||||
poetryLockHash,
|
||||
[
|
||||
'/Users/patrick/Library/Caches/pypoetry/virtualenvs',
|
||||
path.join(__dirname, 'data', 'inner', '.venv'),
|
||||
path.join(__dirname, 'data', '.venv')
|
||||
]
|
||||
]
|
||||
])(
|
||||
'restored dependencies for %s by primaryKey',
|
||||
async (
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile,
|
||||
fileHash,
|
||||
cachePaths
|
||||
) => {
|
||||
restoreCacheSpy.mockImplementation(
|
||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||
return primaryKey.includes(fileHash) ? primaryKey : '';
|
||||
}
|
||||
);
|
||||
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
);
|
||||
|
||||
await cacheDistributor.restoreCache();
|
||||
|
||||
if (cachePaths !== undefined) {
|
||||
expect(saveStateSpy).toHaveBeenCalledWith(
|
||||
State.CACHE_PATHS,
|
||||
cachePaths
|
||||
);
|
||||
}
|
||||
|
||||
const restoredKeys = restoreCacheSpy.mock.results.map(
|
||||
result => result.value
|
||||
);
|
||||
|
||||
restoredKeys.forEach(restoredKey => {
|
||||
if (restoredKey) {
|
||||
if (process.platform === 'linux' && packageManager === 'pip') {
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-20.04-Ubuntu-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||
);
|
||||
} else if (packageManager === 'poetry') {
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-python-${pythonVersion}-${packageManager}-v2-${fileHash}`
|
||||
);
|
||||
} else {
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||
);
|
||||
}
|
||||
} else {
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`${packageManager} cache is not found`
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
30000
|
||||
);
|
||||
|
||||
it.each([['pipenv', '3.9.12', 'requirements.txt', 'requirements.txt']])(
|
||||
'Should throw an error because dependency file is not found',
|
||||
async (
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile,
|
||||
cacheDependencyPath
|
||||
) => {
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
);
|
||||
|
||||
await expect(cacheDistributor.restoreCache()).rejects.toThrow(
|
||||
`No file in ${process.cwd()} matched to [${cacheDependencyPath
|
||||
.split('\n')
|
||||
.join(',')}], make sure you have checked out the target repository`
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([
|
||||
['pip', '3.8.12', 'requirements-linux.txt'],
|
||||
['pip', '3.8.12', 'requirements.txt']
|
||||
])(
|
||||
'Shouldn`t throw an error as there is a default file `pyproject.toml` to use when requirements.txt is not specified',
|
||||
async (packageManager, pythonVersion, dependencyFile) => {
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
);
|
||||
await expect(cacheDistributor.restoreCache()).resolves.not.toThrow();
|
||||
}
|
||||
);
|
||||
|
||||
it.each([
|
||||
['pip', '3.8.12', 'requirements-linux.txt'],
|
||||
['pip', '3.8.12', 'requirements.txt']
|
||||
])(
|
||||
'Should throw an error as there is no default file `pyproject.toml` to use when requirements.txt is not specified',
|
||||
async (packageManager, pythonVersion, dependencyFile) => {
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
) as any; // Widening PipCache | PipenvCache | PoetryCache type to any allow us to change private property on the cacheDistributor to test value: "**/pyprojecttest.toml"
|
||||
|
||||
cacheDistributor.cacheDependencyBackupPath = '**/pyprojecttest.toml';
|
||||
|
||||
await expect(cacheDistributor.restoreCache()).rejects.toThrow();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('Dependencies changed', () => {
|
||||
it.each([
|
||||
['pip', '3.8.12', '__tests__/data/**/requirements.txt', pipFileLockHash],
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/**/requirements-linux.txt',
|
||||
pipFileLockHash
|
||||
],
|
||||
[
|
||||
'pip',
|
||||
'3.8.12',
|
||||
'__tests__/data/requirements-linux.txt',
|
||||
pipFileLockHash
|
||||
],
|
||||
['pip', '3.8.12', '__tests__/data/requirements.txt', pipFileLockHash],
|
||||
['pipenv', '3.9.1', '__tests__/data/**/Pipfile.lock', requirementsHash],
|
||||
['pipenv', '3.9.12', '__tests__/data/requirements.txt', requirementsHash],
|
||||
['poetry', '3.9.1', '__tests__/data/**/poetry.lock', requirementsHash]
|
||||
])(
|
||||
'restored dependencies for %s by primaryKey',
|
||||
async (packageManager, pythonVersion, dependencyFile, fileHash) => {
|
||||
restoreCacheSpy.mockImplementation(
|
||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||
return primaryKey !== fileHash && restoreKey ? pipFileLockHash : '';
|
||||
}
|
||||
);
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
);
|
||||
await cacheDistributor.restoreCache();
|
||||
let result = '';
|
||||
|
||||
switch (packageManager) {
|
||||
case 'pip':
|
||||
result = `Cache restored from key: ${fileHash}`;
|
||||
break;
|
||||
case 'pipenv':
|
||||
result = 'pipenv cache is not found';
|
||||
break;
|
||||
case 'poetry':
|
||||
result = 'poetry cache is not found';
|
||||
break;
|
||||
}
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith(result);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('Check if handleMatchResult', () => {
|
||||
it.each([
|
||||
['pip', '3.8.12', 'requirements.txt', 'someKey', 'someKey', true],
|
||||
['pipenv', '3.9.1', 'requirements.txt', 'someKey', 'someKey', true],
|
||||
['poetry', '3.8.12', 'requirements.txt', 'someKey', 'someKey', true],
|
||||
['pip', '3.9.2', 'requirements.txt', undefined, 'someKey', false],
|
||||
['pipenv', '3.8.12', 'requirements.txt', undefined, 'someKey', false],
|
||||
['poetry', '3.9.12', 'requirements.txt', undefined, 'someKey', false]
|
||||
])(
|
||||
'sets correct outputs',
|
||||
async (
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile,
|
||||
matchedKey,
|
||||
restoredKey,
|
||||
expectedOutputValue
|
||||
) => {
|
||||
const cacheDistributor = getCacheDistributor(
|
||||
packageManager,
|
||||
pythonVersion,
|
||||
dependencyFile
|
||||
);
|
||||
cacheDistributor.handleMatchResult(matchedKey, restoredKey);
|
||||
expect(setOutputSpy).toHaveBeenCalledWith(
|
||||
'cache-hit',
|
||||
expectedOutputValue
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,266 @@
|
||||
import * as core from '@actions/core';
|
||||
import * as cache from '@actions/cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import {run} from '../src/cache-save';
|
||||
import {State} from '../src/cache-distributions/cache-distributor';
|
||||
|
||||
describe('run', () => {
|
||||
const pipFileLockHash =
|
||||
'd1dd6218299d8a6db5fc2001d988b34a8b31f1e9d0bb4534d377dde7c19f64b3';
|
||||
const requirementsHash =
|
||||
'd8110e0006d7fb5ee76365d565eef9d37df1d11598b912d3eb66d398d57a1121';
|
||||
const requirementsLinuxHash =
|
||||
'2d0ff7f46b0e120e3d3294db65768b474934242637b9899b873e6283dfd16d7c';
|
||||
const poetryLockHash =
|
||||
'571bf984f8d210e6a97f854e479fdd4a2b5af67b5fdac109ec337a0ea16e7836';
|
||||
|
||||
// core spy
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let saveStateSpy: jest.SpyInstance;
|
||||
let getStateSpy: jest.SpyInstance;
|
||||
let getInputSpy: jest.SpyInstance;
|
||||
let setFailedSpy: jest.SpyInstance;
|
||||
|
||||
// cache spy
|
||||
let saveCacheSpy: jest.SpyInstance;
|
||||
|
||||
// exec spy
|
||||
let getExecOutputSpy: jest.SpyInstance;
|
||||
|
||||
let inputs = {} as any;
|
||||
|
||||
beforeEach(() => {
|
||||
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(input => undefined);
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(input => undefined);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(input => undefined);
|
||||
|
||||
saveStateSpy = jest.spyOn(core, 'saveState');
|
||||
saveStateSpy.mockImplementation(input => undefined);
|
||||
|
||||
getStateSpy = jest.spyOn(core, 'getState');
|
||||
getStateSpy.mockImplementation(input => {
|
||||
if (input === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
}
|
||||
return requirementsHash;
|
||||
});
|
||||
|
||||
setFailedSpy = jest.spyOn(core, 'setFailed');
|
||||
|
||||
getInputSpy = jest.spyOn(core, 'getInput');
|
||||
getInputSpy.mockImplementation(input => inputs[input]);
|
||||
|
||||
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
||||
getExecOutputSpy.mockImplementation((input: string) => {
|
||||
if (input.includes('pip')) {
|
||||
return {stdout: 'pip', stderr: '', exitCode: 0};
|
||||
}
|
||||
|
||||
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
||||
});
|
||||
|
||||
saveCacheSpy = jest.spyOn(cache, 'saveCache');
|
||||
saveCacheSpy.mockImplementation(() => undefined);
|
||||
});
|
||||
|
||||
describe('Package manager validation', () => {
|
||||
it('Package manager is not provided, skip caching', async () => {
|
||||
inputs['cache'] = '';
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(infoSpy).not.toHaveBeenCalled();
|
||||
expect(saveCacheSpy).not.toHaveBeenCalled();
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Validate unchanged cache is not saved', () => {
|
||||
it('should not save cache for pip', async () => {
|
||||
inputs['cache'] = 'pip';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(debugSpy).toHaveBeenCalledWith(
|
||||
`paths for caching are ${__dirname}`
|
||||
);
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache hit occurred on the primary key ${requirementsHash}, not saving cache.`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not save cache for pipenv', async () => {
|
||||
inputs['cache'] = 'pipenv';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(debugSpy).toHaveBeenCalledWith(
|
||||
`paths for caching are ${__dirname}`
|
||||
);
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache hit occurred on the primary key ${requirementsHash}, not saving cache.`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('action saves the cache', () => {
|
||||
it('saves cache from pip', async () => {
|
||||
inputs['cache'] = 'pip';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
getStateSpy.mockImplementation((name: string) => {
|
||||
if (name === State.CACHE_MATCHED_KEY) {
|
||||
return requirementsHash;
|
||||
} else if (name === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
} else {
|
||||
return pipFileLockHash;
|
||||
}
|
||||
});
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).not.toHaveBeenCalledWith(
|
||||
`Cache hit occurred on the primary key ${requirementsHash}, not saving cache.`
|
||||
);
|
||||
expect(saveCacheSpy).toHaveBeenCalled();
|
||||
expect(infoSpy).toHaveBeenLastCalledWith(
|
||||
`Cache saved with the key: ${pipFileLockHash}`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('saves cache from pipenv', async () => {
|
||||
inputs['cache'] = 'pipenv';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
getStateSpy.mockImplementation((name: string) => {
|
||||
if (name === State.CACHE_MATCHED_KEY) {
|
||||
return pipFileLockHash;
|
||||
} else if (name === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
} else {
|
||||
return requirementsHash;
|
||||
}
|
||||
});
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).not.toHaveBeenCalledWith(
|
||||
`Cache hit occurred on the primary key ${pipFileLockHash}, not saving cache.`
|
||||
);
|
||||
expect(saveCacheSpy).toHaveBeenCalled();
|
||||
expect(infoSpy).toHaveBeenLastCalledWith(
|
||||
`Cache saved with the key: ${requirementsHash}`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('saves cache from poetry', async () => {
|
||||
inputs['cache'] = 'poetry';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
getStateSpy.mockImplementation((name: string) => {
|
||||
if (name === State.CACHE_MATCHED_KEY) {
|
||||
return poetryLockHash;
|
||||
} else if (name === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
} else {
|
||||
return requirementsHash;
|
||||
}
|
||||
});
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).not.toHaveBeenCalledWith(
|
||||
`Cache hit occurred on the primary key ${poetryLockHash}, not saving cache.`
|
||||
);
|
||||
expect(saveCacheSpy).toHaveBeenCalled();
|
||||
expect(infoSpy).toHaveBeenLastCalledWith(
|
||||
`Cache saved with the key: ${requirementsHash}`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('saves with -1 cacheId , should not fail workflow', async () => {
|
||||
inputs['cache'] = 'poetry';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
getStateSpy.mockImplementation((name: string) => {
|
||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||
return poetryLockHash;
|
||||
} else if (name === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
} else {
|
||||
return requirementsHash;
|
||||
}
|
||||
});
|
||||
|
||||
saveCacheSpy.mockImplementation(() => {
|
||||
return -1;
|
||||
});
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).not.toHaveBeenCalled();
|
||||
expect(saveCacheSpy).toHaveBeenCalled();
|
||||
expect(infoSpy).not.toHaveBeenLastCalledWith(
|
||||
`Cache saved with the key: ${poetryLockHash}`
|
||||
);
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('saves with error from toolkit, should not fail the workflow', async () => {
|
||||
inputs['cache'] = 'npm';
|
||||
inputs['python-version'] = '3.10.0';
|
||||
getStateSpy.mockImplementation((name: string) => {
|
||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||
return poetryLockHash;
|
||||
} else if (name === State.CACHE_PATHS) {
|
||||
return JSON.stringify([__dirname]);
|
||||
} else {
|
||||
return requirementsHash;
|
||||
}
|
||||
});
|
||||
|
||||
saveCacheSpy.mockImplementation(() => {
|
||||
throw new cache.ValidationError('Validation failed');
|
||||
});
|
||||
|
||||
await run();
|
||||
|
||||
expect(getInputSpy).toHaveBeenCalled();
|
||||
expect(getStateSpy).toHaveBeenCalledTimes(3);
|
||||
expect(infoSpy).not.toHaveBeenCalledWith();
|
||||
expect(saveCacheSpy).toHaveBeenCalled();
|
||||
expect(setFailedSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
inputs = {};
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PYTHON_PATH="$1"
|
||||
PATH_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')
|
||||
PYTHON_PATH_EXECUTABLE=$("${PYTHON_PATH}" -c 'import sys; print(sys.executable)')
|
||||
if [ "${PATH_EXECUTABLE}" != "${PYTHON_PATH_EXECUTABLE}" ]; then
|
||||
echo "Executable mismatch."
|
||||
echo "python in PATH is: ${PATH_EXECUTABLE}"
|
||||
echo "python-path (${PYTHON_PATH}) is: ${PYTHON_PATH_EXECUTABLE}"
|
||||
exit 1
|
||||
fi
|
||||
echo "python-path: ${PYTHON_PATH}"
|
||||
@@ -0,0 +1,13 @@
|
||||
[[source]]
|
||||
url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[packages]
|
||||
flake8 = "==6.0.0"
|
||||
numpy = "==2.2.4"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
[requires]
|
||||
python_version = "*"
|
||||
Generated
+116
@@ -0,0 +1,116 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "9d0bc7ff1f9078396b19f05bc5cd57894f3783c68f96fa9d623b1ea5a1b168f5"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
"python_version": "*"
|
||||
},
|
||||
"sources": [
|
||||
{
|
||||
"name": "pypi",
|
||||
"url": "https://pypi.org/simple",
|
||||
"verify_ssl": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"default": {
|
||||
"flake8": {
|
||||
"hashes": [
|
||||
"sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7",
|
||||
"sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_full_version >= '3.8.1'",
|
||||
"version": "==6.0.0"
|
||||
},
|
||||
"mccabe": {
|
||||
"hashes": [
|
||||
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325",
|
||||
"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.7.0"
|
||||
},
|
||||
"numpy": {
|
||||
"hashes": [
|
||||
"sha256:05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286",
|
||||
"sha256:0d54974f9cf14acf49c60f0f7f4084b6579d24d439453d5fc5805d46a165b542",
|
||||
"sha256:11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f",
|
||||
"sha256:188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d",
|
||||
"sha256:1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0",
|
||||
"sha256:1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7",
|
||||
"sha256:207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3",
|
||||
"sha256:218f061d2faa73621fa23d6359442b0fc658d5b9a70801373625d958259eaca3",
|
||||
"sha256:2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146",
|
||||
"sha256:2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1",
|
||||
"sha256:31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6",
|
||||
"sha256:3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc",
|
||||
"sha256:4ba5054787e89c59c593a4169830ab362ac2bee8a969249dc56e5d7d20ff8df9",
|
||||
"sha256:4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592",
|
||||
"sha256:65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00",
|
||||
"sha256:6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298",
|
||||
"sha256:7051ee569db5fbac144335e0f3b9c2337e0c8d5c9fee015f259a5bd70772b7e8",
|
||||
"sha256:7716e4a9b7af82c06a2543c53ca476fa0b57e4d760481273e09da04b74ee6ee2",
|
||||
"sha256:79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392",
|
||||
"sha256:7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb",
|
||||
"sha256:8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8",
|
||||
"sha256:81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd",
|
||||
"sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9",
|
||||
"sha256:879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0",
|
||||
"sha256:892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687",
|
||||
"sha256:92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc",
|
||||
"sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f",
|
||||
"sha256:9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4",
|
||||
"sha256:a0258ad1f44f138b791327961caedffbf9612bfa504ab9597157806faa95194a",
|
||||
"sha256:a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39",
|
||||
"sha256:a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4",
|
||||
"sha256:a84eda42bd12edc36eb5b53bbcc9b406820d3353f1994b6cfe453a33ff101775",
|
||||
"sha256:ab2939cd5bec30a7430cbdb2287b63151b77cf9624de0532d629c9a1c59b1d5c",
|
||||
"sha256:ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd",
|
||||
"sha256:adf8c1d66f432ce577d0197dceaac2ac00c0759f573f28516246351c58a85020",
|
||||
"sha256:b4adfbbc64014976d2f91084915ca4e626fbf2057fb81af209c1a6d776d23e3d",
|
||||
"sha256:bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24",
|
||||
"sha256:bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7",
|
||||
"sha256:bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f",
|
||||
"sha256:c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba",
|
||||
"sha256:cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880",
|
||||
"sha256:d0f35b19894a9e08639fd60a1ec1978cb7f5f7f1eace62f38dd36be8aecdef4d",
|
||||
"sha256:db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6",
|
||||
"sha256:dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854",
|
||||
"sha256:df2f57871a96bbc1b69733cd4c51dc33bea66146b8c63cacbfed73eec0883017",
|
||||
"sha256:e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8",
|
||||
"sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae",
|
||||
"sha256:e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4",
|
||||
"sha256:ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09",
|
||||
"sha256:ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff",
|
||||
"sha256:f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960",
|
||||
"sha256:f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee",
|
||||
"sha256:f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5",
|
||||
"sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c",
|
||||
"sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.10'",
|
||||
"version": "==2.2.4"
|
||||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
"sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053",
|
||||
"sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==2.10.0"
|
||||
},
|
||||
"pyflakes": {
|
||||
"hashes": [
|
||||
"sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf",
|
||||
"sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.1"
|
||||
}
|
||||
},
|
||||
"develop": {}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
numpy==2.2.4
|
||||
flake8==6.0.0
|
||||
Generated
+226
@@ -0,0 +1,226 @@
|
||||
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "altgraph"
|
||||
version = "0.17.4"
|
||||
description = "Python graph (network) package"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"},
|
||||
{file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "flake8"
|
||||
version = "4.0.1"
|
||||
description = "the modular source code checker: pep8 pyflakes and co"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "flake8-4.0.1-py2.py3-none-any.whl", hash = "sha256:479b1304f72536a55948cb40a32dce8bb0ffe3501e26eaf292c7e60eb5e0428d"},
|
||||
{file = "flake8-4.0.1.tar.gz", hash = "sha256:806e034dda44114815e23c16ef92f95c91e4c71100ff52813adf7132a6ad870d"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
mccabe = ">=0.6.0,<0.7.0"
|
||||
pycodestyle = ">=2.8.0,<2.9.0"
|
||||
pyflakes = ">=2.4.0,<2.5.0"
|
||||
|
||||
[[package]]
|
||||
name = "importlib-metadata"
|
||||
version = "8.5.0"
|
||||
description = "Read metadata from Python packages"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
|
||||
{file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
zipp = ">=3.20"
|
||||
|
||||
[package.extras]
|
||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
|
||||
cover = ["pytest-cov"]
|
||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||
enabler = ["pytest-enabler (>=2.2)"]
|
||||
perf = ["ipython"]
|
||||
test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
|
||||
type = ["pytest-mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "macholib"
|
||||
version = "1.16.3"
|
||||
description = "Mach-O header analysis and editing"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"},
|
||||
{file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
altgraph = ">=0.17"
|
||||
|
||||
[[package]]
|
||||
name = "mccabe"
|
||||
version = "0.6.1"
|
||||
description = "McCabe checker, plugin for flake8"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
|
||||
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "packaging"
|
||||
version = "24.2"
|
||||
description = "Core utilities for Python packages"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
|
||||
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pefile"
|
||||
version = "2024.8.26"
|
||||
description = "Python PE parsing module"
|
||||
optional = false
|
||||
python-versions = ">=3.6.0"
|
||||
files = [
|
||||
{file = "pefile-2024.8.26-py3-none-any.whl", hash = "sha256:76f8b485dcd3b1bb8166f1128d395fa3d87af26360c2358fb75b80019b957c6f"},
|
||||
{file = "pefile-2024.8.26.tar.gz", hash = "sha256:3ff6c5d8b43e8c37bb6e6dd5085658d658a7a0bdcd20b6a07b1fcfc1c4e9d632"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pycodestyle"
|
||||
version = "2.8.0"
|
||||
description = "Python style guide checker"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
files = [
|
||||
{file = "pycodestyle-2.8.0-py2.py3-none-any.whl", hash = "sha256:720f8b39dde8b293825e7ff02c475f3077124006db4f440dcbc9a20b76548a20"},
|
||||
{file = "pycodestyle-2.8.0.tar.gz", hash = "sha256:eddd5847ef438ea1c7870ca7eb78a9d47ce0cdb4851a5523949f2601d0cbbe7f"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyflakes"
|
||||
version = "2.4.0"
|
||||
description = "passive checker of Python programs"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
|
||||
files = [
|
||||
{file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"},
|
||||
{file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pyinstaller"
|
||||
version = "6.10.0"
|
||||
description = "PyInstaller bundles a Python application and all its dependencies into a single package."
|
||||
optional = false
|
||||
python-versions = "<3.14,>=3.8"
|
||||
files = [
|
||||
{file = "pyinstaller-6.10.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:d60fb22859e11483af735aec115fdde09467cdbb29edd9844839f2c920b748c0"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:46d75359668993ddd98630a3669dc5249f3c446e35239b43bc7f4155bc574748"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-manylinux2014_i686.whl", hash = "sha256:3398a98fa17d47ccb31f8779ecbdacec025f7adb2f22757a54b706ac8b4fe906"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e9989f354ae4ed8a3bec7bdb37ae0d170751d6520e500f049c7cd0632d31d5c3"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:b7c90c91921b3749083115b28f30f40abf2bb481ceff196d2b2ce0eaa2b3d429"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6cf876d7d93b8b4f28d1ad57fa24645cf43119c79e985dd5e5f7a801245e6f53"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:db05e3f2f10f9f78c56f1fb163d9cb453433429fe4281218ebaf1ebfd39ba942"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:28eca3817f176fdc19747e1afcf434f13bb9f17a644f611be2c5a61b1f498ed7"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-win32.whl", hash = "sha256:703e041718987e46ba0568a2c71ecf2459fddef57cf9edf3efeed4a53e3dae3f"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-win_amd64.whl", hash = "sha256:95b55966e563e8b8f31a43882aea10169e9a11fdf38e626d86a2907b640c0701"},
|
||||
{file = "pyinstaller-6.10.0-py3-none-win_arm64.whl", hash = "sha256:308e0a8670c9c9ac0cebbf1bbb492e71b6675606f2ec78bc4adfc830d209e087"},
|
||||
{file = "pyinstaller-6.10.0.tar.gz", hash = "sha256:143840f8056ff7b910bf8f16f6cd92cc10a6c2680bb76d0a25d558d543d21270"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
altgraph = "*"
|
||||
importlib-metadata = {version = ">=4.6", markers = "python_version < \"3.10\""}
|
||||
macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""}
|
||||
packaging = ">=22.0"
|
||||
pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""}
|
||||
pyinstaller-hooks-contrib = ">=2024.8"
|
||||
pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""}
|
||||
setuptools = ">=42.0.0"
|
||||
|
||||
[package.extras]
|
||||
completion = ["argcomplete"]
|
||||
hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"]
|
||||
|
||||
[[package]]
|
||||
name = "pyinstaller-hooks-contrib"
|
||||
version = "2025.1"
|
||||
description = "Community maintained hooks for PyInstaller"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pyinstaller_hooks_contrib-2025.1-py3-none-any.whl", hash = "sha256:d3c799470cbc0bda60dcc8e6b4ab976777532b77621337f2037f558905e3a8e9"},
|
||||
{file = "pyinstaller_hooks_contrib-2025.1.tar.gz", hash = "sha256:130818f9e9a0a7f2261f1fd66054966a3a50c99d000981c5d1db11d3ad0c6ab2"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
importlib_metadata = {version = ">=4.6", markers = "python_version < \"3.10\""}
|
||||
packaging = ">=22.0"
|
||||
setuptools = ">=42.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "pywin32-ctypes"
|
||||
version = "0.2.3"
|
||||
description = "A (partial) reimplementation of pywin32 using ctypes/cffi"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755"},
|
||||
{file = "pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "setuptools"
|
||||
version = "75.3.2"
|
||||
description = "Easily download, build, install, upgrade, and uninstall Python packages"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "setuptools-75.3.2-py3-none-any.whl", hash = "sha256:90ab613b6583fc02d5369cbca13ea26ea0e182d1df2d943ee9cbe81d4c61add9"},
|
||||
{file = "setuptools-75.3.2.tar.gz", hash = "sha256:3c1383e1038b68556a382c1e8ded8887cd20141b0eb5708a6c8d277de49364f5"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"]
|
||||
core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
|
||||
cover = ["pytest-cov"]
|
||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
||||
enabler = ["pytest-enabler (>=2.2)"]
|
||||
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "ruff (<=0.7.1)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
|
||||
type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "zipp"
|
||||
version = "3.20.2"
|
||||
description = "Backport of pathlib-compatible object wrapper for zip files"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "zipp-3.20.2-py3-none-any.whl", hash = "sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350"},
|
||||
{file = "zipp-3.20.2.tar.gz", hash = "sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)"]
|
||||
cover = ["pytest-cov"]
|
||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||
enabler = ["pytest-enabler (>=2.2)"]
|
||||
test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
|
||||
type = ["pytest-mypy"]
|
||||
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.8,<3.14"
|
||||
content-hash = "6db8fff0987f3dadb02cbf0e510a2d04b01ab2dc6d7b0fb32a0e33a8d30b3a58"
|
||||
@@ -0,0 +1,17 @@
|
||||
[tool.poetry]
|
||||
name = "testactiontasks"
|
||||
version = "0.1.0"
|
||||
description = ""
|
||||
authors = ["Your Name <you@example.com>"]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.8,<3.14"
|
||||
flake8 = "^4.0.1"
|
||||
pyinstaller = "6.10.0"
|
||||
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
@@ -0,0 +1,623 @@
|
||||
[
|
||||
{
|
||||
"pypy_version": "7.3.8rc2",
|
||||
"python_version": "3.8.12",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"date": "2022-02-11",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-darwin64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-darwin64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-s390x.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-win64.zip",
|
||||
"arch": "x64",
|
||||
"platform": "win64",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-win64.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.8-v7.3.8rc2-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.8-v7.3.8rc2-win32.zip"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.4.0rc1",
|
||||
"python_version": "3.6.12",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"date": "2021-11-11",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-darwin64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-darwin64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.4.0rc1-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.3",
|
||||
"python_version": "3.6.12",
|
||||
"stable": true,
|
||||
"latest_pypy": true,
|
||||
"date": "2020-11-21",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-darwin64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-darwin64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.3rc1",
|
||||
"python_version": "3.6.12",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"date": "2020-11-11",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3rc1-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-linux32rc1.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3rc1-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3rc1-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3-win32rc1.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.3rc1-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.3rc1-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.4rc1",
|
||||
"python_version": "2.7.18",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"date": "2021-03-19",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.4rc1-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.downloads.python.org/pypy/pypy2.7-v7.3.4rc1-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.4rc1-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.downloads.python.org/pypy/pypy2.7-v7.3.4rc1-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.4rc1-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.downloads.python.org/pypy/pypy2.7-v7.3.4rc1-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.4rc1-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.downloads.python.org/pypy/pypy2.7-v7.3.4rc1-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.4rc1-win64.zip",
|
||||
"arch": "x64",
|
||||
"platform": "win64",
|
||||
"download_url": "https://test.downloads.python.org/pypy/pypy2.7-v7.3.4rc1-win64.zip"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.3rc2",
|
||||
"python_version": "3.7.7",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"date": "2020-11-11",
|
||||
"files": [
|
||||
{
|
||||
"filename": "test.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "test.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "test.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "test.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "test.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "test.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "test.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "test.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "test.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "test.zip"
|
||||
},
|
||||
{
|
||||
"filename": "test.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "test.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.3",
|
||||
"python_version": "3.7.9",
|
||||
"stable": true,
|
||||
"latest_pypy": true,
|
||||
"date": "2020-11-21",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.3-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.3-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.3",
|
||||
"python_version": "2.7.18",
|
||||
"stable": true,
|
||||
"latest_pypy": true,
|
||||
"date": "2020-11-21",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.3-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.3-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.2",
|
||||
"python_version": "3.6.9",
|
||||
"stable": true,
|
||||
"latest_pypy": true,
|
||||
"date": "2020-09-25",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.6-v7.3.2-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.6-v7.3.2-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.2",
|
||||
"python_version": "3.7.9",
|
||||
"stable": true,
|
||||
"latest_pypy": false,
|
||||
"date": "2020-09-25",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy3.7-v7.3.2-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy3.7-v7.3.2-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "7.3.2",
|
||||
"python_version": "2.7.13",
|
||||
"stable": true,
|
||||
"latest_pypy": true,
|
||||
"date": "2020-09-25",
|
||||
"files": [
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-aarch64.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-aarch64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-linux32.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-linux32.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-linux64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-linux64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-osx64.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-osx64.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-win32.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-win32.zip"
|
||||
},
|
||||
{
|
||||
"filename": "pypy2.7-v7.3.2-s390x.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "https://test.download.python.org/pypy/pypy2.7-v7.3.2-s390x.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "nightly",
|
||||
"python_version": "2.7",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"files": [
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "http://nightlyBuilds.org/filename.zip"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "nightly",
|
||||
"python_version": "3.7",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"files": [
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "http://nightlyBuilds.org/filename.zip"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pypy_version": "nightly",
|
||||
"python_version": "3.6",
|
||||
"stable": false,
|
||||
"latest_pypy": false,
|
||||
"files": [
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "aarch64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "i686",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
},
|
||||
{
|
||||
"filename": "filename.zip",
|
||||
"arch": "x86",
|
||||
"platform": "win32",
|
||||
"download_url": "http://nightlyBuilds.org/filename.zip"
|
||||
},
|
||||
{
|
||||
"filename": "filename.tar.bz2",
|
||||
"arch": "s390x",
|
||||
"platform": "linux",
|
||||
"download_url": "http://nightlyBuilds.org/filename.tar.bz2"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,12 @@
|
||||
certifi==2020.6.20
|
||||
chardet==3.0.4
|
||||
docutils==0.16
|
||||
idna==2.10
|
||||
Kivy==2.0.0rc3
|
||||
Kivy-Garden==0.1.4
|
||||
packaging==20.7
|
||||
pdf2image==1.12.1
|
||||
Pygments==2.6.1
|
||||
requests==2.32.2
|
||||
urllib3==1.26.19
|
||||
xlrd==1.2.0
|
||||
@@ -0,0 +1,47 @@
|
||||
altgraph==0.17.2
|
||||
|
||||
certifi==2020.6.20
|
||||
|
||||
chardet==3.0.4
|
||||
|
||||
docutils==0.16
|
||||
|
||||
future==0.18.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
|
||||
|
||||
idna==2.9
|
||||
|
||||
itsdangerous==1.1.0
|
||||
|
||||
kivy-deps-angle==0.3.0
|
||||
|
||||
kivy-deps.glew==0.1.12
|
||||
|
||||
kivy-deps.gstreamer==0.1.17
|
||||
|
||||
kivy-deps.sdl2==0.1.22
|
||||
|
||||
kivy-garden==0.1.4
|
||||
|
||||
kivy==1.11.1
|
||||
|
||||
packaging==21.0
|
||||
|
||||
pdf2image==1.12.1
|
||||
|
||||
pefile==2021.9.3; python_full_version >= '3.6.0'
|
||||
|
||||
pillow>=10.2.0
|
||||
|
||||
pygments==2.6.1
|
||||
|
||||
pyinstaller==6.10.0
|
||||
|
||||
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
|
||||
|
||||
pywin32-ctypes==0.2.0
|
||||
|
||||
requests==2.32.2
|
||||
|
||||
urllib3==1.26.19
|
||||
|
||||
xlrd==1.2.0
|
||||
@@ -0,0 +1,77 @@
|
||||
[
|
||||
{
|
||||
"version": "1.2.4-beta.2",
|
||||
"stable": false,
|
||||
"release_url": "https://github.com/actions/sometool/releases/tag/1.2.4-beta.2-20200402.5",
|
||||
"files": [
|
||||
{
|
||||
"filename": "sometool-1.2.4-linux-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.4-beta.2-20200402.5/sometool-1.2.4-linux-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.2.4-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.4-beta.2-20200402.5/sometool-1.2.4-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.2.4-win32-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.4-beta.2-20200402.5/sometool-1.2.4-win32-x64.tar.gz"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "1.2.3",
|
||||
"stable": true,
|
||||
"release_url": "https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6",
|
||||
"files": [
|
||||
{
|
||||
"filename": "sometool-1.2.3-linux-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-linux-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.2.3-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.2.3-win32-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-win32-x64.tar.gz"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "1.1.0-beta.2",
|
||||
"stable": false,
|
||||
"release_url": "https://github.com/actions/sometool/releases/tag/1.1.0-beta.2-20200402.5",
|
||||
"files": [
|
||||
{
|
||||
"filename": "sometool-1.1.0-linux-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "linux",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.1.0-beta.2-20200402.5/sometool-1.1.0-linux-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.1.0-darwin-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "darwin",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.1.0-beta.2-20200402.5/sometool-1.1.0-darwin-x64.tar.gz"
|
||||
},
|
||||
{
|
||||
"filename": "sometool-1.1.0-win32-x64.tar.gz",
|
||||
"arch": "x64",
|
||||
"platform": "win32",
|
||||
"download_url": "https://github.com/actions/sometool/releases/tag/1.1.0-beta.2-20200402.5/sometool-1.1.0-win32-x64.tar.gz"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,378 @@
|
||||
import fs from 'fs';
|
||||
|
||||
import {HttpClient} from '@actions/http-client';
|
||||
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import * as path from 'path';
|
||||
import * as semver from 'semver';
|
||||
|
||||
import * as finder from '../src/find-graalpy';
|
||||
import {IGraalPyManifestRelease, IS_WINDOWS} from '../src/utils';
|
||||
|
||||
import manifestData from './data/graalpy.json';
|
||||
|
||||
const architecture = 'x64';
|
||||
|
||||
const toolDir = path.join(__dirname, 'runner', 'tools');
|
||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||
|
||||
/* GraalPy doesn't have a windows release yet */
|
||||
const describeSkipOnWindows = IS_WINDOWS ? describe.skip : describe;
|
||||
|
||||
describe('parseGraalPyVersion', () => {
|
||||
it.each([
|
||||
['graalpy-23', '23'],
|
||||
['graalpy-23.0', '23.0'],
|
||||
['graalpy23.0', '23.0']
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(finder.parseGraalPyVersion(input)).toEqual(expected);
|
||||
});
|
||||
|
||||
it.each(['', 'graalpy-', 'graalpy', 'p', 'notgraalpy-'])(
|
||||
'throw on invalid input "%s"',
|
||||
input => {
|
||||
expect(() => finder.parseGraalPyVersion(input)).toThrow(
|
||||
"Invalid 'version' property for GraalPy. GraalPy version should be specified as 'graalpy<python-version>' or 'graalpy-<python-version>'. See README for examples and documentation."
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('findGraalPyToolCache', () => {
|
||||
const actualGraalPyVersion = '23.0.0';
|
||||
const graalpyPath = path.join('GraalPy', actualGraalPyVersion, architecture);
|
||||
let tcFind: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let addPathSpy: jest.SpyInstance;
|
||||
let exportVariableSpy: jest.SpyInstance;
|
||||
let setOutputSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation((toolname: string, pythonVersion: string) => {
|
||||
const semverVersion = new semver.Range(pythonVersion);
|
||||
return semver.satisfies(actualGraalPyVersion, semverVersion)
|
||||
? graalpyPath
|
||||
: '';
|
||||
});
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => null);
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
addPathSpy = jest.spyOn(core, 'addPath');
|
||||
addPathSpy.mockImplementation(() => null);
|
||||
|
||||
exportVariableSpy = jest.spyOn(core, 'exportVariable');
|
||||
exportVariableSpy.mockImplementation(() => null);
|
||||
|
||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||
setOutputSpy.mockImplementation(() => null);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('GraalPy exists on the path and versions are satisfied', () => {
|
||||
expect(finder.findGraalPyToolCache('23.0.0', architecture)).toEqual({
|
||||
installDir: graalpyPath,
|
||||
resolvedGraalPyVersion: actualGraalPyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it('GraalPy exists on the path and versions are satisfied with semver', () => {
|
||||
expect(finder.findGraalPyToolCache('23.0', architecture)).toEqual({
|
||||
installDir: graalpyPath,
|
||||
resolvedGraalPyVersion: actualGraalPyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it("GraalPy exists on the path, but version doesn't match", () => {
|
||||
expect(finder.findGraalPyToolCache('22.3', architecture)).toEqual({
|
||||
installDir: '',
|
||||
resolvedGraalPyVersion: ''
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describeSkipOnWindows('findGraalPyVersion', () => {
|
||||
let getBooleanInputSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let addPathSpy: jest.SpyInstance;
|
||||
let exportVariableSpy: jest.SpyInstance;
|
||||
let setOutputSpy: jest.SpyInstance;
|
||||
let tcFind: jest.SpyInstance;
|
||||
let spyExtractZip: jest.SpyInstance;
|
||||
let spyExtractTar: jest.SpyInstance;
|
||||
let spyHttpClient: jest.SpyInstance;
|
||||
let spyExistsSync: jest.SpyInstance;
|
||||
let spyExec: jest.SpyInstance;
|
||||
let spySymlinkSync: jest.SpyInstance;
|
||||
let spyDownloadTool: jest.SpyInstance;
|
||||
let spyFsReadDir: jest.SpyInstance;
|
||||
let spyCacheDir: jest.SpyInstance;
|
||||
let spyChmodSync: jest.SpyInstance;
|
||||
let spyCoreAddPath: jest.SpyInstance;
|
||||
let spyCoreExportVariable: jest.SpyInstance;
|
||||
const env = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(() => false);
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
addPathSpy = jest.spyOn(core, 'addPath');
|
||||
addPathSpy.mockImplementation(() => null);
|
||||
|
||||
exportVariableSpy = jest.spyOn(core, 'exportVariable');
|
||||
exportVariableSpy.mockImplementation(() => null);
|
||||
|
||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||
setOutputSpy.mockImplementation(() => null);
|
||||
|
||||
jest.resetModules();
|
||||
process.env = {...env};
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation((tool: string, version: string) => {
|
||||
const semverRange = new semver.Range(version);
|
||||
let graalpyPath = '';
|
||||
if (semver.satisfies('23.0.0', semverRange)) {
|
||||
graalpyPath = path.join(toolDir, 'GraalPy', '23.0.0', architecture);
|
||||
}
|
||||
return graalpyPath;
|
||||
});
|
||||
|
||||
spyDownloadTool = jest.spyOn(tc, 'downloadTool');
|
||||
spyDownloadTool.mockImplementation(() => path.join(tempDir, 'GraalPy'));
|
||||
|
||||
spyExtractZip = jest.spyOn(tc, 'extractZip');
|
||||
spyExtractZip.mockImplementation(() => tempDir);
|
||||
|
||||
spyExtractTar = jest.spyOn(tc, 'extractTar');
|
||||
spyExtractTar.mockImplementation(() => tempDir);
|
||||
|
||||
spyFsReadDir = jest.spyOn(fs, 'readdirSync');
|
||||
spyFsReadDir.mockImplementation((directory: string) => ['GraalPyTest']);
|
||||
|
||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||
spyHttpClient.mockImplementation(
|
||||
async (): Promise<ifm.TypedResponse<IGraalPyManifestRelease[]>> => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
return {
|
||||
statusCode: 200,
|
||||
headers: {},
|
||||
result: JSON.parse(result) as IGraalPyManifestRelease[]
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
spyExec = jest.spyOn(exec, 'exec');
|
||||
spyExec.mockImplementation(() => undefined);
|
||||
|
||||
spySymlinkSync = jest.spyOn(fs, 'symlinkSync');
|
||||
spySymlinkSync.mockImplementation(() => undefined);
|
||||
|
||||
spyExistsSync = jest.spyOn(fs, 'existsSync');
|
||||
spyExistsSync.mockReturnValue(true);
|
||||
|
||||
spyCoreAddPath = jest.spyOn(core, 'addPath');
|
||||
|
||||
spyCoreExportVariable = jest.spyOn(core, 'exportVariable');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
process.env = env;
|
||||
});
|
||||
|
||||
it('found GraalPy in toolcache', async () => {
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-23.0',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('23.0.0');
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('throw on invalid input format', async () => {
|
||||
await expect(
|
||||
finder.findGraalPyVersion('graalpy-x23', architecture, true, false, false)
|
||||
).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('found and install successfully', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '23.0.0', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-23.0.0',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('23.0.0');
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('found and install successfully without environment update', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '23.0.0', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-23.0.0',
|
||||
architecture,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('23.0.0');
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('throw if release is not found', async () => {
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-19.0.0',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).rejects.toThrow(
|
||||
`GraalPy version 19.0.0 with arch ${architecture} not found`
|
||||
);
|
||||
});
|
||||
|
||||
it('check-latest enabled version found and used from toolcache', async () => {
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-23.0.0',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('23.0.0');
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith('Resolved as GraalPy 23.0.0');
|
||||
});
|
||||
|
||||
it('check-latest enabled version found and install successfully', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '23.0.0', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-23.0.0',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('23.0.0');
|
||||
expect(infoSpy).toHaveBeenCalledWith('Resolved as GraalPy 23.0.0');
|
||||
});
|
||||
|
||||
it('check-latest enabled version is not found and used from toolcache', async () => {
|
||||
tcFind.mockImplementationOnce((tool: string, version: string) => {
|
||||
const semverRange = new semver.Range(version);
|
||||
let graalpyPath = '';
|
||||
if (semver.satisfies('22.3.4', semverRange)) {
|
||||
graalpyPath = path.join(toolDir, 'GraalPy', '22.3.4', architecture);
|
||||
}
|
||||
return graalpyPath;
|
||||
});
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy-22.3.4',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual('22.3.4');
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Failed to resolve GraalPy 22.3.4 from manifest'
|
||||
);
|
||||
});
|
||||
|
||||
it('found and install successfully, pre-release fallback', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '23.1', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findGraalPyVersion(
|
||||
'graalpy23.1',
|
||||
architecture,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).rejects.toThrow();
|
||||
await expect(
|
||||
finder.findGraalPyVersion('graalpy23.1', architecture, false, false, true)
|
||||
).resolves.toEqual('23.1.0-a.1');
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,464 @@
|
||||
import fs from 'fs';
|
||||
|
||||
import * as utils from '../src/utils';
|
||||
import {HttpClient} from '@actions/http-client';
|
||||
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import * as path from 'path';
|
||||
import * as semver from 'semver';
|
||||
|
||||
import * as finder from '../src/find-pypy';
|
||||
import {
|
||||
IPyPyManifestRelease,
|
||||
IS_WINDOWS,
|
||||
getPyPyVersionFromPath
|
||||
} from '../src/utils';
|
||||
|
||||
import manifestData from './data/pypy.json';
|
||||
|
||||
let architecture: string;
|
||||
|
||||
if (IS_WINDOWS) {
|
||||
architecture = 'x86';
|
||||
} else {
|
||||
architecture = 'x64';
|
||||
}
|
||||
|
||||
const toolDir = path.join(__dirname, 'runner', 'tools');
|
||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||
|
||||
describe('parsePyPyVersion', () => {
|
||||
it.each([
|
||||
['pypy-3.6-v7.3.3', {pythonVersion: '3.6', pypyVersion: 'v7.3.3'}],
|
||||
['pypy-3.6-v7.3.x', {pythonVersion: '3.6', pypyVersion: 'v7.3.x'}],
|
||||
['pypy-3.6-v7.x', {pythonVersion: '3.6', pypyVersion: 'v7.x'}],
|
||||
['pypy-3.6', {pythonVersion: '3.6', pypyVersion: 'x'}],
|
||||
['pypy-3.6-nightly', {pythonVersion: '3.6', pypyVersion: 'nightly'}],
|
||||
['pypy-3.6-v7.3.3rc1', {pythonVersion: '3.6', pypyVersion: 'v7.3.3-rc.1'}],
|
||||
['pypy3.8-v7.3.7', {pythonVersion: '3.8', pypyVersion: 'v7.3.7'}],
|
||||
['pypy3.8-v7.3.x', {pythonVersion: '3.8', pypyVersion: 'v7.3.x'}],
|
||||
['pypy3.8-v7.x', {pythonVersion: '3.8', pypyVersion: 'v7.x'}],
|
||||
['pypy3.8', {pythonVersion: '3.8', pypyVersion: 'x'}],
|
||||
['pypy3.9-nightly', {pythonVersion: '3.9', pypyVersion: 'nightly'}],
|
||||
['pypy3.9-v7.3.8rc1', {pythonVersion: '3.9', pypyVersion: 'v7.3.8-rc.1'}]
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(finder.parsePyPyVersion(input)).toEqual(expected);
|
||||
});
|
||||
|
||||
it.each(['', 'pypy-', 'pypy', 'p', 'notpypy-'])(
|
||||
'throw on invalid input "%s"',
|
||||
input => {
|
||||
expect(() => finder.parsePyPyVersion(input)).toThrow(
|
||||
"Invalid 'version' property for PyPy. PyPy version should be specified as 'pypy<python-version>' or 'pypy-<python-version>'. See README for examples and documentation."
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
it.each(['pypy-2', 'pypy-3', 'pypy2', 'pypy3', 'pypy3.x', 'pypy3.8.10'])(
|
||||
'throw on invalid input "%s"',
|
||||
input => {
|
||||
expect(() => finder.parsePyPyVersion(input)).toThrow(
|
||||
"Invalid format of Python version for PyPy. Python version should be specified in format 'x.y'. See README for examples and documentation."
|
||||
);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('getPyPyVersionFromPath', () => {
|
||||
it('/fake/toolcache/PyPy/3.6.5/x64 -> 3.6.5', () => {
|
||||
expect(getPyPyVersionFromPath('/fake/toolcache/PyPy/3.6.5/x64')).toEqual(
|
||||
'3.6.5'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('findPyPyToolCache', () => {
|
||||
const actualPythonVersion = '3.6.17';
|
||||
const actualPyPyVersion = '7.5.4';
|
||||
const pypyPath = path.join('PyPy', actualPythonVersion, architecture);
|
||||
let tcFind: jest.SpyInstance;
|
||||
let spyReadExactPyPyVersion: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let addPathSpy: jest.SpyInstance;
|
||||
let exportVariableSpy: jest.SpyInstance;
|
||||
let setOutputSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation((toolname: string, pythonVersion: string) => {
|
||||
const semverVersion = new semver.Range(pythonVersion);
|
||||
return semver.satisfies(actualPythonVersion, semverVersion)
|
||||
? pypyPath
|
||||
: '';
|
||||
});
|
||||
|
||||
spyReadExactPyPyVersion = jest.spyOn(utils, 'readExactPyPyVersionFile');
|
||||
spyReadExactPyPyVersion.mockImplementation(() => actualPyPyVersion);
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => null);
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
addPathSpy = jest.spyOn(core, 'addPath');
|
||||
addPathSpy.mockImplementation(() => null);
|
||||
|
||||
exportVariableSpy = jest.spyOn(core, 'exportVariable');
|
||||
exportVariableSpy.mockImplementation(() => null);
|
||||
|
||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||
setOutputSpy.mockImplementation(() => null);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('PyPy exists on the path and versions are satisfied', () => {
|
||||
expect(finder.findPyPyToolCache('3.6.17', 'v7.5.4', architecture)).toEqual({
|
||||
installDir: pypyPath,
|
||||
resolvedPythonVersion: actualPythonVersion,
|
||||
resolvedPyPyVersion: actualPyPyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it('PyPy exists on the path and versions are satisfied with semver', () => {
|
||||
expect(finder.findPyPyToolCache('3.6', 'v7.5.x', architecture)).toEqual({
|
||||
installDir: pypyPath,
|
||||
resolvedPythonVersion: actualPythonVersion,
|
||||
resolvedPyPyVersion: actualPyPyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it("PyPy exists on the path, but Python version doesn't match", () => {
|
||||
expect(finder.findPyPyToolCache('3.7', 'v7.5.4', architecture)).toEqual({
|
||||
installDir: '',
|
||||
resolvedPythonVersion: '',
|
||||
resolvedPyPyVersion: ''
|
||||
});
|
||||
});
|
||||
|
||||
it("PyPy exists on the path, but PyPy version doesn't match", () => {
|
||||
expect(finder.findPyPyToolCache('3.6', 'v7.5.1', architecture)).toEqual({
|
||||
installDir: null,
|
||||
resolvedPythonVersion: '',
|
||||
resolvedPyPyVersion: ''
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('findPyPyVersion', () => {
|
||||
let getBooleanInputSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let addPathSpy: jest.SpyInstance;
|
||||
let exportVariableSpy: jest.SpyInstance;
|
||||
let setOutputSpy: jest.SpyInstance;
|
||||
let tcFind: jest.SpyInstance;
|
||||
let spyExtractZip: jest.SpyInstance;
|
||||
let spyExtractTar: jest.SpyInstance;
|
||||
let spyHttpClient: jest.SpyInstance;
|
||||
let spyExistsSync: jest.SpyInstance;
|
||||
let spyExec: jest.SpyInstance;
|
||||
let spySymlinkSync: jest.SpyInstance;
|
||||
let spyDownloadTool: jest.SpyInstance;
|
||||
let spyReadExactPyPyVersion: jest.SpyInstance;
|
||||
let spyFsReadDir: jest.SpyInstance;
|
||||
let spyWriteExactPyPyVersionFile: jest.SpyInstance;
|
||||
let spyCacheDir: jest.SpyInstance;
|
||||
let spyChmodSync: jest.SpyInstance;
|
||||
let spyCoreAddPath: jest.SpyInstance;
|
||||
let spyCoreExportVariable: jest.SpyInstance;
|
||||
const env = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(() => false);
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
addPathSpy = jest.spyOn(core, 'addPath');
|
||||
addPathSpy.mockImplementation(() => null);
|
||||
|
||||
exportVariableSpy = jest.spyOn(core, 'exportVariable');
|
||||
exportVariableSpy.mockImplementation(() => null);
|
||||
|
||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||
setOutputSpy.mockImplementation(() => null);
|
||||
|
||||
jest.resetModules();
|
||||
process.env = {...env};
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation((tool: string, version: string) => {
|
||||
const semverRange = new semver.Range(version);
|
||||
let pypyPath = '';
|
||||
if (semver.satisfies('3.6.12', semverRange)) {
|
||||
pypyPath = path.join(toolDir, 'PyPy', '3.6.12', architecture);
|
||||
}
|
||||
return pypyPath;
|
||||
});
|
||||
|
||||
spyWriteExactPyPyVersionFile = jest.spyOn(
|
||||
utils,
|
||||
'writeExactPyPyVersionFile'
|
||||
);
|
||||
spyWriteExactPyPyVersionFile.mockImplementation(() => null);
|
||||
|
||||
spyReadExactPyPyVersion = jest.spyOn(utils, 'readExactPyPyVersionFile');
|
||||
spyReadExactPyPyVersion.mockImplementation(() => '7.3.3');
|
||||
|
||||
spyDownloadTool = jest.spyOn(tc, 'downloadTool');
|
||||
spyDownloadTool.mockImplementation(() => path.join(tempDir, 'PyPy'));
|
||||
|
||||
spyExtractZip = jest.spyOn(tc, 'extractZip');
|
||||
spyExtractZip.mockImplementation(() => tempDir);
|
||||
|
||||
spyExtractTar = jest.spyOn(tc, 'extractTar');
|
||||
spyExtractTar.mockImplementation(() => tempDir);
|
||||
|
||||
spyFsReadDir = jest.spyOn(fs, 'readdirSync');
|
||||
spyFsReadDir.mockImplementation((directory: string) => ['PyPyTest']);
|
||||
|
||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||
spyHttpClient.mockImplementation(
|
||||
async (): Promise<ifm.TypedResponse<IPyPyManifestRelease[]>> => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
return {
|
||||
statusCode: 200,
|
||||
headers: {},
|
||||
result: JSON.parse(result) as IPyPyManifestRelease[]
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
spyExec = jest.spyOn(exec, 'exec');
|
||||
spyExec.mockImplementation(() => undefined);
|
||||
|
||||
spySymlinkSync = jest.spyOn(fs, 'symlinkSync');
|
||||
spySymlinkSync.mockImplementation(() => undefined);
|
||||
|
||||
spyExistsSync = jest.spyOn(fs, 'existsSync');
|
||||
spyExistsSync.mockReturnValue(true);
|
||||
|
||||
spyCoreAddPath = jest.spyOn(core, 'addPath');
|
||||
|
||||
spyCoreExportVariable = jest.spyOn(core, 'exportVariable');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
process.env = env;
|
||||
});
|
||||
|
||||
it('found PyPy in toolcache', async () => {
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.6-v7.3.x',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('throw on invalid input format', async () => {
|
||||
await expect(
|
||||
finder.findPyPyVersion('pypy3.7-v7.3.x', architecture, true, false, false)
|
||||
).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('throw on invalid input format pypy3.7-7.3.x', async () => {
|
||||
await expect(
|
||||
finder.findPyPyVersion('pypy3.7-v7.3.x', architecture, true, false, false)
|
||||
).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('found and install successfully', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.7.7', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.7-v7.3.x',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.7.9',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('found and install successfully without environment update', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.7.7', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.7-v7.3.x',
|
||||
architecture,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.7.9',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('throw if release is not found', async () => {
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.7-v7.5.x',
|
||||
architecture,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).rejects.toThrow(
|
||||
`PyPy version 3.7 (v7.5.x) with arch ${architecture} not found`
|
||||
);
|
||||
});
|
||||
|
||||
it('check-latest enabled version found and used from toolcache', async () => {
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.6-v7.3.x',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Resolved as PyPy 7.3.3 with Python (3.6.12)'
|
||||
);
|
||||
});
|
||||
|
||||
it('check-latest enabled version found and install successfully', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.7.7', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.7-v7.3.x',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.7.9',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Resolved as PyPy 7.3.3 with Python (3.7.9)'
|
||||
);
|
||||
});
|
||||
|
||||
it('check-latest enabled version is not found and used from toolcache', async () => {
|
||||
tcFind.mockImplementationOnce((tool: string, version: string) => {
|
||||
const semverRange = new semver.Range(version);
|
||||
let pypyPath = '';
|
||||
if (semver.satisfies('3.8.8', semverRange)) {
|
||||
pypyPath = path.join(toolDir, 'PyPy', '3.8.8', architecture);
|
||||
}
|
||||
return pypyPath;
|
||||
});
|
||||
await expect(
|
||||
finder.findPyPyVersion(
|
||||
'pypy-3.8-v7.3.x',
|
||||
architecture,
|
||||
false,
|
||||
true,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.8.8',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Failed to resolve PyPy v7.3.x with Python (3.8) from manifest'
|
||||
);
|
||||
});
|
||||
|
||||
it('found and install successfully, pre-release fallback', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.8.12', architecture)
|
||||
);
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
await expect(
|
||||
finder.findPyPyVersion('pypy3.8', architecture, false, false, false)
|
||||
).rejects.toThrow();
|
||||
await expect(
|
||||
finder.findPyPyVersion('pypy3.8', architecture, false, false, true)
|
||||
).resolves.toEqual({
|
||||
resolvedPythonVersion: '3.8.12',
|
||||
resolvedPyPyVersion: '7.3.8rc2'
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,43 @@
|
||||
import {desugarVersion, pythonVersionToSemantic} from '../src/find-python';
|
||||
|
||||
describe('desugarVersion', () => {
|
||||
it.each([
|
||||
['3.13', {version: '3.13', freethreaded: false}],
|
||||
['3.13t', {version: '3.13', freethreaded: true}],
|
||||
['3.13.1', {version: '3.13.1', freethreaded: false}],
|
||||
['3.13.1t', {version: '3.13.1', freethreaded: true}],
|
||||
['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
|
||||
['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(desugarVersion(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
// Test the combined desugarVersion and pythonVersionToSemantic functions
|
||||
describe('pythonVersions', () => {
|
||||
it.each([
|
||||
['3.13', {version: '3.13', freethreaded: false}],
|
||||
['3.13t', {version: '3.13', freethreaded: true}],
|
||||
['3.13.1', {version: '3.13.1', freethreaded: false}],
|
||||
['3.13.1t', {version: '3.13.1', freethreaded: true}],
|
||||
['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
|
||||
['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
|
||||
])('%s -> %s', (input, expected) => {
|
||||
const {version, freethreaded} = desugarVersion(input);
|
||||
const semanticVersionSpec = pythonVersionToSemantic(version, false);
|
||||
expect({version: semanticVersionSpec, freethreaded}).toEqual(expected);
|
||||
});
|
||||
|
||||
it.each([
|
||||
['3.13', {version: '~3.13.0-0', freethreaded: false}],
|
||||
['3.13t', {version: '~3.13.0-0', freethreaded: true}],
|
||||
['3.13.1', {version: '3.13.1', freethreaded: false}],
|
||||
['3.13.1t', {version: '3.13.1', freethreaded: true}],
|
||||
['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
|
||||
['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
|
||||
])('%s (allowPreReleases=true) -> %s', (input, expected) => {
|
||||
const {version, freethreaded} = desugarVersion(input);
|
||||
const semanticVersionSpec = pythonVersionToSemantic(version, true);
|
||||
expect({version: semanticVersionSpec, freethreaded}).toEqual(expected);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,301 @@
|
||||
import * as io from '@actions/io';
|
||||
import os from 'os';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const toolDir = path.join(
|
||||
__dirname,
|
||||
'runner',
|
||||
path.join(Math.random().toString(36).substring(7)),
|
||||
'tools'
|
||||
);
|
||||
const tempDir = path.join(
|
||||
__dirname,
|
||||
'runner',
|
||||
path.join(Math.random().toString(36).substring(7)),
|
||||
'temp'
|
||||
);
|
||||
|
||||
process.env['RUNNER_TOOL_CACHE'] = toolDir;
|
||||
process.env['RUNNER_TEMP'] = tempDir;
|
||||
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as core from '@actions/core';
|
||||
import * as finder from '../src/find-python';
|
||||
import * as installer from '../src/install-python';
|
||||
|
||||
import manifestData from './data/versions-manifest.json';
|
||||
|
||||
describe('Finder tests', () => {
|
||||
let writeSpy: jest.SpyInstance;
|
||||
let spyCoreAddPath: jest.SpyInstance;
|
||||
let spyCoreExportVariable: jest.SpyInstance;
|
||||
const env = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
writeSpy = jest.spyOn(process.stdout, 'write');
|
||||
writeSpy.mockImplementation(() => {});
|
||||
jest.resetModules();
|
||||
process.env = {...env};
|
||||
spyCoreAddPath = jest.spyOn(core, 'addPath');
|
||||
spyCoreExportVariable = jest.spyOn(core, 'exportVariable');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
process.env = env;
|
||||
});
|
||||
|
||||
it('Finds Python if it is installed', async () => {
|
||||
const getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(input => false);
|
||||
|
||||
const pythonDir: string = path.join(toolDir, 'Python', '3.0.0', 'x64');
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await finder.useCpythonVersion('3.x', 'x64', true, false, false, false);
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('Finds Python if it is installed without environment update', async () => {
|
||||
const pythonDir: string = path.join(toolDir, 'Python', '3.0.0', 'x64');
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await finder.useCpythonVersion('3.x', 'x64', false, false, false, false);
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('Finds stable Python version if it is not installed, but exists in the manifest', async () => {
|
||||
const findSpy: jest.SpyInstance = jest.spyOn(tc, 'getManifestFromRepo');
|
||||
findSpy.mockImplementation(() => <tc.IToolRelease[]>manifestData);
|
||||
|
||||
const getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(input => false);
|
||||
|
||||
const installSpy: jest.SpyInstance = jest.spyOn(
|
||||
installer,
|
||||
'installCpythonFromRelease'
|
||||
);
|
||||
installSpy.mockImplementation(async () => {
|
||||
const pythonDir: string = path.join(toolDir, 'Python', '1.2.3', 'x64');
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
});
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await expect(
|
||||
finder.useCpythonVersion('1.2.3', 'x64', true, false, false, false)
|
||||
).resolves.toEqual({
|
||||
impl: 'CPython',
|
||||
version: '1.2.3'
|
||||
});
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('Finds pre-release Python version in the manifest', async () => {
|
||||
const findSpy: jest.SpyInstance = jest.spyOn(tc, 'getManifestFromRepo');
|
||||
findSpy.mockImplementation(() => <tc.IToolRelease[]>manifestData);
|
||||
|
||||
const getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(input => false);
|
||||
|
||||
const installSpy: jest.SpyInstance = jest.spyOn(
|
||||
installer,
|
||||
'installCpythonFromRelease'
|
||||
);
|
||||
installSpy.mockImplementation(async () => {
|
||||
const pythonDir: string = path.join(
|
||||
toolDir,
|
||||
'Python',
|
||||
'1.2.4-beta.2',
|
||||
'x64'
|
||||
);
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
});
|
||||
// This will throw if it doesn't find it in the manifest (because no such version exists)
|
||||
await expect(
|
||||
finder.useCpythonVersion(
|
||||
'1.2.4-beta.2',
|
||||
'x64',
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
)
|
||||
).resolves.toEqual({
|
||||
impl: 'CPython',
|
||||
version: '1.2.4-beta.2'
|
||||
});
|
||||
});
|
||||
|
||||
it('Check-latest true, finds the latest version in the manifest', async () => {
|
||||
const findSpy: jest.SpyInstance = jest.spyOn(tc, 'getManifestFromRepo');
|
||||
findSpy.mockImplementation(() => <tc.IToolRelease[]>manifestData);
|
||||
|
||||
const getBooleanInputSpy = jest.spyOn(core, 'getBooleanInput');
|
||||
getBooleanInputSpy.mockImplementation(input => true);
|
||||
|
||||
const cnSpy: jest.SpyInstance = jest.spyOn(process.stdout, 'write');
|
||||
cnSpy.mockImplementation(line => {
|
||||
// uncomment to debug
|
||||
// process.stderr.write('write:' + line + '\n');
|
||||
});
|
||||
|
||||
const addPathSpy: jest.SpyInstance = jest.spyOn(core, 'addPath');
|
||||
addPathSpy.mockImplementation(() => null);
|
||||
|
||||
const infoSpy: jest.SpyInstance = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
const debugSpy: jest.SpyInstance = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => {});
|
||||
|
||||
const pythonDir: string = path.join(toolDir, 'Python', '1.2.2', 'x64');
|
||||
const expPath: string = path.join(toolDir, 'Python', '1.2.3', 'x64');
|
||||
|
||||
const installSpy: jest.SpyInstance = jest.spyOn(
|
||||
installer,
|
||||
'installCpythonFromRelease'
|
||||
);
|
||||
installSpy.mockImplementation(async () => {
|
||||
await io.mkdirP(expPath);
|
||||
fs.writeFileSync(`${expPath}.complete`, 'hello');
|
||||
});
|
||||
|
||||
const tcFindSpy: jest.SpyInstance = jest.spyOn(tc, 'find');
|
||||
tcFindSpy
|
||||
.mockImplementationOnce(() => '')
|
||||
.mockImplementationOnce(() => expPath);
|
||||
|
||||
await io.mkdirP(pythonDir);
|
||||
await io.rmRF(path.join(toolDir, 'Python', '1.2.3'));
|
||||
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await finder.useCpythonVersion('1.2', 'x64', true, true, false, false);
|
||||
|
||||
expect(infoSpy).toHaveBeenCalledWith("Resolved as '1.2.3'");
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Version 1.2.3 was not found in the local cache'
|
||||
);
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
'Version 1.2.3 is available for downloading'
|
||||
);
|
||||
expect(installSpy).toHaveBeenCalled();
|
||||
expect(addPathSpy).toHaveBeenCalledWith(expPath);
|
||||
await finder.useCpythonVersion(
|
||||
'1.2.4-beta.2',
|
||||
'x64',
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false
|
||||
);
|
||||
expect(spyCoreAddPath).toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'pythonLocation',
|
||||
expect.anything()
|
||||
);
|
||||
expect(spyCoreExportVariable).toHaveBeenCalledWith(
|
||||
'PKG_CONFIG_PATH',
|
||||
expect.anything()
|
||||
);
|
||||
});
|
||||
|
||||
it('Finds stable Python version if it is not installed, but exists in the manifest, skipping newer pre-release', async () => {
|
||||
const findSpy: jest.SpyInstance = jest.spyOn(tc, 'getManifestFromRepo');
|
||||
findSpy.mockImplementation(() => <tc.IToolRelease[]>manifestData);
|
||||
|
||||
const installSpy: jest.SpyInstance = jest.spyOn(
|
||||
installer,
|
||||
'installCpythonFromRelease'
|
||||
);
|
||||
installSpy.mockImplementation(async () => {
|
||||
const pythonDir: string = path.join(toolDir, 'Python', '1.2.3', 'x64');
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
});
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await expect(
|
||||
finder.useCpythonVersion('1.2', 'x64', false, false, false, false)
|
||||
).resolves.toEqual({
|
||||
impl: 'CPython',
|
||||
version: '1.2.3'
|
||||
});
|
||||
});
|
||||
|
||||
it('Finds Python version if it is not installed, but exists in the manifest, pre-release fallback', async () => {
|
||||
const findSpy: jest.SpyInstance = jest.spyOn(tc, 'getManifestFromRepo');
|
||||
findSpy.mockImplementation(() => <tc.IToolRelease[]>manifestData);
|
||||
|
||||
const installSpy: jest.SpyInstance = jest.spyOn(
|
||||
installer,
|
||||
'installCpythonFromRelease'
|
||||
);
|
||||
installSpy.mockImplementation(async () => {
|
||||
const pythonDir: string = path.join(
|
||||
toolDir,
|
||||
'Python',
|
||||
'1.1.0-beta.2',
|
||||
'x64'
|
||||
);
|
||||
await io.mkdirP(pythonDir);
|
||||
fs.writeFileSync(`${pythonDir}.complete`, 'hello');
|
||||
});
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
await expect(
|
||||
finder.useCpythonVersion('1.1', 'x64', false, false, false, false)
|
||||
).rejects.toThrow();
|
||||
await expect(
|
||||
finder.useCpythonVersion('1.1', 'x64', false, false, true, false)
|
||||
).resolves.toEqual({
|
||||
impl: 'CPython',
|
||||
version: '1.1.0-beta.2'
|
||||
});
|
||||
// Check 1.1.0 version specifier does not fallback to '1.1.0-beta.2'
|
||||
await expect(
|
||||
finder.useCpythonVersion('1.1.0', 'x64', false, false, true, false)
|
||||
).rejects.toThrow();
|
||||
});
|
||||
|
||||
it('Errors if Python is not installed', async () => {
|
||||
// This will throw if it doesn't find it in the cache and in the manifest (because no such version exists)
|
||||
let thrown = false;
|
||||
try {
|
||||
await finder.useCpythonVersion(
|
||||
'3.300000',
|
||||
'x64',
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
);
|
||||
} catch {
|
||||
thrown = true;
|
||||
}
|
||||
expect(thrown).toBeTruthy();
|
||||
expect(spyCoreAddPath).not.toHaveBeenCalled();
|
||||
expect(spyCoreExportVariable).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,256 @@
|
||||
import fs from 'fs';
|
||||
|
||||
import {HttpClient} from '@actions/http-client';
|
||||
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as core from '@actions/core';
|
||||
import * as path from 'path';
|
||||
|
||||
import * as installer from '../src/install-graalpy';
|
||||
import {
|
||||
IGraalPyManifestRelease,
|
||||
IGraalPyManifestAsset,
|
||||
IS_WINDOWS
|
||||
} from '../src/utils';
|
||||
|
||||
import manifestData from './data/graalpy.json';
|
||||
|
||||
const architecture = 'x64';
|
||||
|
||||
const toolDir = path.join(__dirname, 'runner', 'tools');
|
||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||
|
||||
/* GraalPy doesn't have a windows release yet */
|
||||
const describeSkipOnWindows = IS_WINDOWS ? describe.skip : describe;
|
||||
|
||||
describe('graalpyVersionToSemantic', () => {
|
||||
it.each([
|
||||
['23.0.0a1', '23.0.0a1'],
|
||||
['23.0.0', '23.0.0'],
|
||||
['23.0.x', '23.0.x'],
|
||||
['23.x', '23.x']
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(installer.graalPyTagToVersion(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describeSkipOnWindows('findRelease', () => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
const releases = JSON.parse(result) as IGraalPyManifestRelease[];
|
||||
const extension = 'tar.gz';
|
||||
const arch = installer.toGraalPyArchitecture(architecture);
|
||||
const platform = installer.toGraalPyPlatform(process.platform);
|
||||
const extensionName = `${platform}-${arch}.${extension}`;
|
||||
const files: IGraalPyManifestAsset = {
|
||||
name: `graalpython-23.0.0-${extensionName}`,
|
||||
browser_download_url: `https://github.com/oracle/graalpython/releases/download/graal-23.0.0/graalpython-23.0.0-${extensionName}`
|
||||
};
|
||||
const filesRC1: IGraalPyManifestAsset = {
|
||||
name: `graalpython-23.1.0a1-${extensionName}`,
|
||||
browser_download_url: `https://github.com/oracle/graalpython/releases/download/graal-23.1.0a1/graalpython-23.1.0a1-${extensionName}`
|
||||
};
|
||||
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
});
|
||||
|
||||
it("GraalPy version doesn't match", () => {
|
||||
const graalpyVersion = '12.0.0';
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, false)
|
||||
).toEqual(null);
|
||||
});
|
||||
|
||||
it('GraalPy version matches', () => {
|
||||
const graalpyVersion = '23.0.0';
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, false)
|
||||
).toMatchObject({
|
||||
foundAsset: files,
|
||||
resolvedGraalPyVersion: graalpyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it('Preview version of GraalPy is found', () => {
|
||||
const graalpyVersion = installer.graalPyTagToVersion('vm-23.1.0a1');
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, false)
|
||||
).toMatchObject({
|
||||
foundAsset: {
|
||||
name: `graalpython-23.1.0a1-${extensionName}`,
|
||||
browser_download_url: `https://github.com/oracle/graalpython/releases/download/graal-23.1.0a1/graalpython-23.1.0a1-${extensionName}`
|
||||
},
|
||||
resolvedGraalPyVersion: '23.1.0-a.1'
|
||||
});
|
||||
});
|
||||
|
||||
it('Latest GraalPy is found', () => {
|
||||
const graalpyVersion = 'x';
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, false)
|
||||
).toMatchObject({
|
||||
foundAsset: files,
|
||||
resolvedGraalPyVersion: '23.0.0'
|
||||
});
|
||||
});
|
||||
|
||||
it('GraalPy version matches semver (pre-release)', () => {
|
||||
const graalpyVersion = '23.1.x';
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, false)
|
||||
).toBeNull();
|
||||
expect(
|
||||
installer.findRelease(releases, graalpyVersion, architecture, true)
|
||||
).toMatchObject({
|
||||
foundAsset: filesRC1,
|
||||
resolvedGraalPyVersion: '23.1.0-a.1'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describeSkipOnWindows('installGraalPy', () => {
|
||||
let tcFind: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let spyExtractZip: jest.SpyInstance;
|
||||
let spyExtractTar: jest.SpyInstance;
|
||||
let spyFsReadDir: jest.SpyInstance;
|
||||
let spyFsWriteFile: jest.SpyInstance;
|
||||
let spyHttpClient: jest.SpyInstance;
|
||||
let spyExistsSync: jest.SpyInstance;
|
||||
let spyExec: jest.SpyInstance;
|
||||
let spySymlinkSync: jest.SpyInstance;
|
||||
let spyDownloadTool: jest.SpyInstance;
|
||||
let spyCacheDir: jest.SpyInstance;
|
||||
let spyChmodSync: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation(() =>
|
||||
path.join('GraalPy', '3.6.12', architecture)
|
||||
);
|
||||
|
||||
spyDownloadTool = jest.spyOn(tc, 'downloadTool');
|
||||
spyDownloadTool.mockImplementation(() => path.join(tempDir, 'GraalPy'));
|
||||
|
||||
spyExtractZip = jest.spyOn(tc, 'extractZip');
|
||||
spyExtractZip.mockImplementation(() => tempDir);
|
||||
|
||||
spyExtractTar = jest.spyOn(tc, 'extractTar');
|
||||
spyExtractTar.mockImplementation(() => tempDir);
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
spyFsReadDir = jest.spyOn(fs, 'readdirSync');
|
||||
spyFsReadDir.mockImplementation(() => ['GraalPyTest']);
|
||||
|
||||
spyFsWriteFile = jest.spyOn(fs, 'writeFileSync');
|
||||
spyFsWriteFile.mockImplementation(() => undefined);
|
||||
|
||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||
spyHttpClient.mockImplementation(
|
||||
async (): Promise<ifm.TypedResponse<IGraalPyManifestRelease[]>> => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
return {
|
||||
statusCode: 200,
|
||||
headers: {},
|
||||
result: JSON.parse(result) as IGraalPyManifestRelease[]
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
spyExec = jest.spyOn(exec, 'exec');
|
||||
spyExec.mockImplementation(() => undefined);
|
||||
|
||||
spySymlinkSync = jest.spyOn(fs, 'symlinkSync');
|
||||
spySymlinkSync.mockImplementation(() => undefined);
|
||||
|
||||
spyExistsSync = jest.spyOn(fs, 'existsSync');
|
||||
spyExistsSync.mockImplementation(() => false);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('throw if release is not found', async () => {
|
||||
await expect(
|
||||
installer.installGraalPy('7.3.3', architecture, false, undefined)
|
||||
).rejects.toThrow(
|
||||
`GraalPy version 7.3.3 with arch ${architecture} not found`
|
||||
);
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).not.toHaveBeenCalled();
|
||||
expect(spyExec).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('found and install GraalPy', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '21.3.0', architecture)
|
||||
);
|
||||
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
|
||||
await expect(
|
||||
installer.installGraalPy('21.x', architecture, false, undefined)
|
||||
).resolves.toEqual({
|
||||
installDir: path.join(toolDir, 'GraalPy', '21.3.0', architecture),
|
||||
resolvedGraalPyVersion: '21.3.0'
|
||||
});
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).toHaveBeenCalled();
|
||||
expect(spyCacheDir).toHaveBeenCalled();
|
||||
expect(spyExec).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('found and install GraalPy, pre-release fallback', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'GraalPy', '23.1.0', architecture)
|
||||
);
|
||||
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
|
||||
await expect(
|
||||
installer.installGraalPy('23.1.x', architecture, false, undefined)
|
||||
).rejects.toThrow();
|
||||
await expect(
|
||||
installer.installGraalPy('23.1.x', architecture, true, undefined)
|
||||
).resolves.toEqual({
|
||||
installDir: path.join(toolDir, 'GraalPy', '23.1.0', architecture),
|
||||
resolvedGraalPyVersion: '23.1.0-a.1'
|
||||
});
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).toHaveBeenCalled();
|
||||
expect(spyCacheDir).toHaveBeenCalled();
|
||||
expect(spyExec).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,356 @@
|
||||
import fs from 'fs';
|
||||
|
||||
import {HttpClient} from '@actions/http-client';
|
||||
import * as ifm from '@actions/http-client/lib/interfaces';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as core from '@actions/core';
|
||||
import * as path from 'path';
|
||||
|
||||
import * as installer from '../src/install-pypy';
|
||||
import {
|
||||
IPyPyManifestRelease,
|
||||
IPyPyManifestAsset,
|
||||
IS_WINDOWS
|
||||
} from '../src/utils';
|
||||
|
||||
import manifestData from './data/pypy.json';
|
||||
|
||||
let architecture: string;
|
||||
if (IS_WINDOWS) {
|
||||
architecture = 'x86';
|
||||
} else {
|
||||
architecture = 'x64';
|
||||
}
|
||||
|
||||
const toolDir = path.join(__dirname, 'runner', 'tools');
|
||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||
|
||||
describe('pypyVersionToSemantic', () => {
|
||||
it.each([
|
||||
['7.3.3rc1', '7.3.3-rc.1'],
|
||||
['7.3.3', '7.3.3'],
|
||||
['7.3.x', '7.3.x'],
|
||||
['7.x', '7.x'],
|
||||
['nightly', 'nightly']
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(installer.pypyVersionToSemantic(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('findRelease', () => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
const releases = JSON.parse(result) as IPyPyManifestRelease[];
|
||||
const extension = IS_WINDOWS ? '.zip' : '.tar.bz2';
|
||||
const extensionName = IS_WINDOWS
|
||||
? `${process.platform}${extension}`
|
||||
: `${process.platform}64${extension}`;
|
||||
const files: IPyPyManifestAsset = {
|
||||
filename: `pypy3.6-v7.3.3-${extensionName}`,
|
||||
arch: architecture,
|
||||
platform: process.platform,
|
||||
download_url: `https://test.download.python.org/pypy/pypy3.6-v7.3.3-${extensionName}`
|
||||
};
|
||||
const filesRC1: IPyPyManifestAsset = {
|
||||
filename: `pypy3.6-v7.4.0rc1-${extensionName}`,
|
||||
arch: architecture,
|
||||
platform: process.platform,
|
||||
download_url: `https://test.download.python.org/pypy/pypy3.6-v7.4.0rc1-${extensionName}`
|
||||
};
|
||||
|
||||
let getBooleanInputSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
});
|
||||
|
||||
it("Python version is found, but PyPy version doesn't match", () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = '7.3.7';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual(null);
|
||||
});
|
||||
|
||||
it('Python version is found and PyPy version matches', () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = '7.3.3';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: files,
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: pypyVersion
|
||||
});
|
||||
});
|
||||
|
||||
it('Python version is found in toolcache and PyPy version matches semver', () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = '7.x';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: files,
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
});
|
||||
|
||||
it('Python and preview version of PyPy are found', () => {
|
||||
const pythonVersion = '3.7';
|
||||
const pypyVersion = installer.pypyVersionToSemantic('7.3.3rc2');
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: {
|
||||
filename: `test${extension}`,
|
||||
arch: architecture,
|
||||
platform: process.platform,
|
||||
download_url: `test${extension}`
|
||||
},
|
||||
resolvedPythonVersion: '3.7.7',
|
||||
resolvedPyPyVersion: '7.3.3rc2'
|
||||
});
|
||||
});
|
||||
|
||||
it('Python version with latest PyPy is found', () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = 'x';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: files,
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
});
|
||||
|
||||
it('Python version and PyPy version matches semver (pre-release)', () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = '7.4.x';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toBeNull();
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
true
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: filesRC1,
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.4.0rc1'
|
||||
});
|
||||
});
|
||||
|
||||
it('Nightly release is found', () => {
|
||||
const pythonVersion = '3.6';
|
||||
const pypyVersion = 'nightly';
|
||||
const filename = IS_WINDOWS ? 'filename.zip' : 'filename.tar.bz2';
|
||||
expect(
|
||||
installer.findRelease(
|
||||
releases,
|
||||
pythonVersion,
|
||||
pypyVersion,
|
||||
architecture,
|
||||
false
|
||||
)
|
||||
).toEqual({
|
||||
foundAsset: {
|
||||
filename: filename,
|
||||
arch: architecture,
|
||||
platform: process.platform,
|
||||
download_url: `http://nightlyBuilds.org/${filename}`
|
||||
},
|
||||
resolvedPythonVersion: '3.6',
|
||||
resolvedPyPyVersion: pypyVersion
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('installPyPy', () => {
|
||||
let tcFind: jest.SpyInstance;
|
||||
let getBooleanInputSpy: jest.SpyInstance;
|
||||
let warningSpy: jest.SpyInstance;
|
||||
let debugSpy: jest.SpyInstance;
|
||||
let infoSpy: jest.SpyInstance;
|
||||
let spyExtractZip: jest.SpyInstance;
|
||||
let spyExtractTar: jest.SpyInstance;
|
||||
let spyFsReadDir: jest.SpyInstance;
|
||||
let spyFsWriteFile: jest.SpyInstance;
|
||||
let spyHttpClient: jest.SpyInstance;
|
||||
let spyExistsSync: jest.SpyInstance;
|
||||
let spyExec: jest.SpyInstance;
|
||||
let spySymlinkSync: jest.SpyInstance;
|
||||
let spyDownloadTool: jest.SpyInstance;
|
||||
let spyCacheDir: jest.SpyInstance;
|
||||
let spyChmodSync: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
tcFind = jest.spyOn(tc, 'find');
|
||||
tcFind.mockImplementation(() => path.join('PyPy', '3.6.12', architecture));
|
||||
|
||||
spyDownloadTool = jest.spyOn(tc, 'downloadTool');
|
||||
spyDownloadTool.mockImplementation(() => path.join(tempDir, 'PyPy'));
|
||||
|
||||
spyExtractZip = jest.spyOn(tc, 'extractZip');
|
||||
spyExtractZip.mockImplementation(() => tempDir);
|
||||
|
||||
spyExtractTar = jest.spyOn(tc, 'extractTar');
|
||||
spyExtractTar.mockImplementation(() => tempDir);
|
||||
|
||||
infoSpy = jest.spyOn(core, 'info');
|
||||
infoSpy.mockImplementation(() => {});
|
||||
|
||||
warningSpy = jest.spyOn(core, 'warning');
|
||||
warningSpy.mockImplementation(() => null);
|
||||
|
||||
debugSpy = jest.spyOn(core, 'debug');
|
||||
debugSpy.mockImplementation(() => null);
|
||||
|
||||
spyFsReadDir = jest.spyOn(fs, 'readdirSync');
|
||||
spyFsReadDir.mockImplementation(() => ['PyPyTest']);
|
||||
|
||||
spyFsWriteFile = jest.spyOn(fs, 'writeFileSync');
|
||||
spyFsWriteFile.mockImplementation(() => undefined);
|
||||
|
||||
spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson');
|
||||
spyHttpClient.mockImplementation(
|
||||
async (): Promise<ifm.TypedResponse<IPyPyManifestRelease[]>> => {
|
||||
const result = JSON.stringify(manifestData);
|
||||
return {
|
||||
statusCode: 200,
|
||||
headers: {},
|
||||
result: JSON.parse(result) as IPyPyManifestRelease[]
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
spyExec = jest.spyOn(exec, 'exec');
|
||||
spyExec.mockImplementation(() => undefined);
|
||||
|
||||
spySymlinkSync = jest.spyOn(fs, 'symlinkSync');
|
||||
spySymlinkSync.mockImplementation(() => undefined);
|
||||
|
||||
spyExistsSync = jest.spyOn(fs, 'existsSync');
|
||||
spyExistsSync.mockImplementation(() => false);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
jest.clearAllMocks();
|
||||
jest.restoreAllMocks();
|
||||
});
|
||||
|
||||
it('throw if release is not found', async () => {
|
||||
await expect(
|
||||
installer.installPyPy('7.3.3', '3.6.17', architecture, false, undefined)
|
||||
).rejects.toThrow(
|
||||
`PyPy version 3.6.17 (7.3.3) with arch ${architecture} not found`
|
||||
);
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).not.toHaveBeenCalled();
|
||||
expect(spyExec).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('found and install PyPy', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.6.12', architecture)
|
||||
);
|
||||
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
|
||||
await expect(
|
||||
installer.installPyPy('7.x', '3.6.12', architecture, false, undefined)
|
||||
).resolves.toEqual({
|
||||
installDir: path.join(toolDir, 'PyPy', '3.6.12', architecture),
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.3.3'
|
||||
});
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).toHaveBeenCalled();
|
||||
expect(spyExistsSync).toHaveBeenCalled();
|
||||
expect(spyCacheDir).toHaveBeenCalled();
|
||||
expect(spyExec).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('found and install PyPy, pre-release fallback', async () => {
|
||||
spyCacheDir = jest.spyOn(tc, 'cacheDir');
|
||||
spyCacheDir.mockImplementation(() =>
|
||||
path.join(toolDir, 'PyPy', '3.6.12', architecture)
|
||||
);
|
||||
|
||||
spyChmodSync = jest.spyOn(fs, 'chmodSync');
|
||||
spyChmodSync.mockImplementation(() => undefined);
|
||||
|
||||
await expect(
|
||||
installer.installPyPy('7.4.x', '3.6.12', architecture, false, undefined)
|
||||
).rejects.toThrow();
|
||||
await expect(
|
||||
installer.installPyPy('7.4.x', '3.6.12', architecture, true, undefined)
|
||||
).resolves.toEqual({
|
||||
installDir: path.join(toolDir, 'PyPy', '3.6.12', architecture),
|
||||
resolvedPythonVersion: '3.6.12',
|
||||
resolvedPyPyVersion: '7.4.0rc1'
|
||||
});
|
||||
|
||||
expect(spyHttpClient).toHaveBeenCalled();
|
||||
expect(spyDownloadTool).toHaveBeenCalled();
|
||||
expect(spyExistsSync).toHaveBeenCalled();
|
||||
expect(spyCacheDir).toHaveBeenCalled();
|
||||
expect(spyExec).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,77 @@
|
||||
import {
|
||||
getManifest,
|
||||
getManifestFromRepo,
|
||||
getManifestFromURL
|
||||
} from '../src/install-python';
|
||||
import * as httpm from '@actions/http-client';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
|
||||
jest.mock('@actions/http-client');
|
||||
jest.mock('@actions/tool-cache');
|
||||
jest.mock('@actions/tool-cache', () => ({
|
||||
getManifestFromRepo: jest.fn()
|
||||
}));
|
||||
const mockManifest = [
|
||||
{
|
||||
version: '1.0.0',
|
||||
stable: true,
|
||||
files: [
|
||||
{
|
||||
filename: 'tool-v1.0.0-linux-x64.tar.gz',
|
||||
platform: 'linux',
|
||||
arch: 'x64',
|
||||
download_url: 'https://example.com/tool-v1.0.0-linux-x64.tar.gz'
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
describe('getManifest', () => {
|
||||
beforeEach(() => {
|
||||
jest.resetAllMocks();
|
||||
});
|
||||
|
||||
it('should return manifest from repo', async () => {
|
||||
(tc.getManifestFromRepo as jest.Mock).mockResolvedValue(mockManifest);
|
||||
const manifest = await getManifest();
|
||||
expect(manifest).toEqual(mockManifest);
|
||||
});
|
||||
|
||||
it('should return manifest from URL if repo fetch fails', async () => {
|
||||
(tc.getManifestFromRepo as jest.Mock).mockRejectedValue(
|
||||
new Error('Fetch failed')
|
||||
);
|
||||
(httpm.HttpClient.prototype.getJson as jest.Mock).mockResolvedValue({
|
||||
result: mockManifest
|
||||
});
|
||||
const manifest = await getManifest();
|
||||
expect(manifest).toEqual(mockManifest);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getManifestFromRepo', () => {
|
||||
it('should return manifest from repo', async () => {
|
||||
(tc.getManifestFromRepo as jest.Mock).mockResolvedValue(mockManifest);
|
||||
const manifest = await getManifestFromRepo();
|
||||
expect(manifest).toEqual(mockManifest);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getManifestFromURL', () => {
|
||||
it('should return manifest from URL', async () => {
|
||||
(httpm.HttpClient.prototype.getJson as jest.Mock).mockResolvedValue({
|
||||
result: mockManifest
|
||||
});
|
||||
const manifest = await getManifestFromURL();
|
||||
expect(manifest).toEqual(mockManifest);
|
||||
});
|
||||
|
||||
it('should throw error if unable to get manifest from URL', async () => {
|
||||
(httpm.HttpClient.prototype.getJson as jest.Mock).mockResolvedValue({
|
||||
result: null
|
||||
});
|
||||
await expect(getManifestFromURL()).rejects.toThrow(
|
||||
'Unable to get manifest from'
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import numpy as np
|
||||
|
||||
a = np.array([2, 3, 4])
|
||||
print(type(a))
|
||||
|
||||
b = np.array([1.2, 3.5, 5.1])
|
||||
print(type(b))
|
||||
@@ -0,0 +1,313 @@
|
||||
import * as cache from '@actions/cache';
|
||||
import * as core from '@actions/core';
|
||||
import * as io from '@actions/io';
|
||||
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
import {
|
||||
validateVersion,
|
||||
validatePythonVersionFormatForPyPy,
|
||||
isCacheFeatureAvailable,
|
||||
getVersionInputFromFile,
|
||||
getVersionInputFromPlainFile,
|
||||
getVersionInputFromTomlFile,
|
||||
getNextPageUrl,
|
||||
isGhes,
|
||||
IS_WINDOWS,
|
||||
getDownloadFileName,
|
||||
getVersionInputFromToolVersions
|
||||
} from '../src/utils';
|
||||
|
||||
jest.mock('@actions/cache');
|
||||
jest.mock('@actions/core');
|
||||
|
||||
describe('validatePythonVersionFormatForPyPy', () => {
|
||||
it.each([
|
||||
['3.6', true],
|
||||
['3.7', true],
|
||||
['3.6.x', false],
|
||||
['3.7.x', false],
|
||||
['3.x', false],
|
||||
['3', false]
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(validatePythonVersionFormatForPyPy(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('validateVersion', () => {
|
||||
it.each([
|
||||
['v7.3.3', true],
|
||||
['v7.3.x', true],
|
||||
['v7.x', true],
|
||||
['x', true],
|
||||
['v7.3.3-rc.1', true],
|
||||
['nightly', true],
|
||||
['v7.3.b', false],
|
||||
['3.6', true],
|
||||
['3.b', false],
|
||||
['3', true]
|
||||
])('%s -> %s', (input, expected) => {
|
||||
expect(validateVersion(input)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('isCacheFeatureAvailable', () => {
|
||||
it('isCacheFeatureAvailable disabled on GHES', () => {
|
||||
jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => false);
|
||||
const infoMock = jest.spyOn(core, 'warning');
|
||||
const message =
|
||||
'Caching is only supported on GHES version >= 3.5. If you are on a version >= 3.5, please check with your GHES admin if the Actions cache service is enabled or not.';
|
||||
try {
|
||||
process.env['GITHUB_SERVER_URL'] = 'http://example.com';
|
||||
expect(isCacheFeatureAvailable()).toBeFalsy();
|
||||
expect(infoMock).toHaveBeenCalledWith(message);
|
||||
} finally {
|
||||
delete process.env['GITHUB_SERVER_URL'];
|
||||
}
|
||||
});
|
||||
|
||||
it('isCacheFeatureAvailable disabled on dotcom', () => {
|
||||
jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => false);
|
||||
const infoMock = jest.spyOn(core, 'warning');
|
||||
const message =
|
||||
'The runner was not able to contact the cache service. Caching will be skipped';
|
||||
try {
|
||||
process.env['GITHUB_SERVER_URL'] = 'http://github.com';
|
||||
expect(isCacheFeatureAvailable()).toBe(false);
|
||||
expect(infoMock).toHaveBeenCalledWith(message);
|
||||
} finally {
|
||||
delete process.env['GITHUB_SERVER_URL'];
|
||||
}
|
||||
});
|
||||
|
||||
it('isCacheFeatureAvailable is enabled', () => {
|
||||
jest.spyOn(cache, 'isFeatureAvailable').mockImplementation(() => true);
|
||||
expect(isCacheFeatureAvailable()).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
const tempDir = path.join(
|
||||
__dirname,
|
||||
'runner',
|
||||
path.join(Math.random().toString(36).substring(7)),
|
||||
'temp'
|
||||
);
|
||||
|
||||
describe('Version from file test', () => {
|
||||
it.each([getVersionInputFromPlainFile, getVersionInputFromFile])(
|
||||
'Version from plain file test',
|
||||
async _fn => {
|
||||
await io.mkdirP(tempDir);
|
||||
const pythonVersionFileName = 'python-version.file';
|
||||
const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
|
||||
const pythonVersionFileContent = '3.7';
|
||||
fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
|
||||
expect(_fn(pythonVersionFilePath)).toEqual([pythonVersionFileContent]);
|
||||
}
|
||||
);
|
||||
it.each([getVersionInputFromTomlFile, getVersionInputFromFile])(
|
||||
'Version from standard pyproject.toml test',
|
||||
async _fn => {
|
||||
await io.mkdirP(tempDir);
|
||||
const pythonVersionFileName = 'pyproject.toml';
|
||||
const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
|
||||
const pythonVersion = '>=3.7.0';
|
||||
const pythonVersionFileContent = `[project]\nrequires-python = "${pythonVersion}"`;
|
||||
fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
|
||||
expect(_fn(pythonVersionFilePath)).toEqual([pythonVersion]);
|
||||
}
|
||||
);
|
||||
it.each([getVersionInputFromTomlFile, getVersionInputFromFile])(
|
||||
'Version from poetry pyproject.toml test',
|
||||
async _fn => {
|
||||
await io.mkdirP(tempDir);
|
||||
const pythonVersionFileName = 'pyproject.toml';
|
||||
const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
|
||||
const pythonVersion = '>=3.7.0';
|
||||
const pythonVersionFileContent = `[tool.poetry.dependencies]\npython = "${pythonVersion}"`;
|
||||
fs.writeFileSync(pythonVersionFilePath, pythonVersionFileContent);
|
||||
expect(_fn(pythonVersionFilePath)).toEqual([pythonVersion]);
|
||||
}
|
||||
);
|
||||
it.each([getVersionInputFromTomlFile, getVersionInputFromFile])(
|
||||
'Version undefined',
|
||||
async _fn => {
|
||||
await io.mkdirP(tempDir);
|
||||
const pythonVersionFileName = 'pyproject.toml';
|
||||
const pythonVersionFilePath = path.join(tempDir, pythonVersionFileName);
|
||||
fs.writeFileSync(pythonVersionFilePath, ``);
|
||||
expect(_fn(pythonVersionFilePath)).toEqual([]);
|
||||
}
|
||||
);
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = 'python 3.9.10\nnodejs 16';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.9.10']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with comment',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = '# python 3.8\npython 3.9';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.9']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with whitespace',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = ' python 3.10 ';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.10']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with v prefix',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = 'python v3.9.10';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.9.10']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with pypy version',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = 'python pypy3.10-7.3.14';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['pypy3.10-7.3.14']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with alpha Releases',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = 'python 3.14.0a5t';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.14.0a5t']);
|
||||
}
|
||||
);
|
||||
|
||||
it.each([getVersionInputFromToolVersions])(
|
||||
'Version from .tool-versions with dev suffix',
|
||||
async _fn => {
|
||||
const toolVersionFileName = '.tool-versions';
|
||||
const toolVersionFilePath = path.join(tempDir, toolVersionFileName);
|
||||
const toolVersionContent = 'python 3.14t-dev';
|
||||
fs.writeFileSync(toolVersionFilePath, toolVersionContent);
|
||||
expect(_fn(toolVersionFilePath)).toEqual(['3.14t-dev']);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
describe('getNextPageUrl', () => {
|
||||
it('GitHub API pagination next page is parsed correctly', () => {
|
||||
function generateResponse(link: string) {
|
||||
return {
|
||||
statusCode: 200,
|
||||
result: null,
|
||||
headers: {
|
||||
link: link
|
||||
}
|
||||
};
|
||||
}
|
||||
const page1Links =
|
||||
'<https://api.github.com/repositories/129883600/releases?page=2>; rel="next", <https://api.github.com/repositories/129883600/releases?page=3>; rel="last"';
|
||||
expect(getNextPageUrl(generateResponse(page1Links))).toStrictEqual(
|
||||
'https://api.github.com/repositories/129883600/releases?page=2'
|
||||
);
|
||||
const page2Links =
|
||||
'<https://api.github.com/repositories/129883600/releases?page=1>; rel="prev", <https://api.github.com/repositories/129883600/releases?page=1>; rel="first"';
|
||||
expect(getNextPageUrl(generateResponse(page2Links))).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
describe('getDownloadFileName', () => {
|
||||
const originalEnv = process.env;
|
||||
const tempDir = path.join(__dirname, 'runner', 'temp');
|
||||
|
||||
beforeEach(() => {
|
||||
process.env = {...originalEnv};
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
|
||||
it('should return the correct path on Windows', () => {
|
||||
if (IS_WINDOWS) {
|
||||
process.env['RUNNER_TEMP'] = tempDir;
|
||||
const downloadUrl =
|
||||
'https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-win32-x64.zip';
|
||||
const expectedPath = path.join(
|
||||
process.env.RUNNER_TEMP,
|
||||
path.basename(downloadUrl)
|
||||
);
|
||||
expect(getDownloadFileName(downloadUrl)).toBe(expectedPath);
|
||||
}
|
||||
});
|
||||
|
||||
it('should return undefined on non-Windows', () => {
|
||||
if (!IS_WINDOWS) {
|
||||
const downloadUrl =
|
||||
'https://github.com/actions/sometool/releases/tag/1.2.3-20200402.6/sometool-1.2.3-linux-x64.tar.gz';
|
||||
expect(getDownloadFileName(downloadUrl)).toBeUndefined();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('isGhes', () => {
|
||||
const pristineEnv = process.env;
|
||||
|
||||
beforeEach(() => {
|
||||
jest.resetModules();
|
||||
process.env = {...pristineEnv};
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
process.env = pristineEnv;
|
||||
});
|
||||
|
||||
it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => {
|
||||
delete process.env['GITHUB_SERVER_URL'];
|
||||
expect(isGhes()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => {
|
||||
process.env['GITHUB_SERVER_URL'] = 'https://github.com';
|
||||
expect(isGhes()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => {
|
||||
process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com';
|
||||
expect(isGhes()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => {
|
||||
process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost';
|
||||
expect(isGhes()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => {
|
||||
process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com';
|
||||
expect(isGhes()).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,3 @@
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
print(f"Using GIL: {sys._is_gil_enabled()}\n")
|
||||
@@ -0,0 +1,22 @@
|
||||
import sys
|
||||
argCount = len(sys.argv) - 1
|
||||
|
||||
if argCount == 1:
|
||||
expectedVersion = sys.argv[1]
|
||||
versions = len(expectedVersion.split("."))
|
||||
majorMinor = str(sys.version_info[0]) + '.' + str(sys.version_info[1])
|
||||
|
||||
if versions == 2:
|
||||
# Test only major and minor version
|
||||
if expectedVersion != majorMinor:
|
||||
raise Exception("Incorrect major + minor version detected\nExpected: " + expectedVersion + "\nActual: " + majorMinor)
|
||||
elif versions == 3:
|
||||
# Test major, minor and micro version
|
||||
majorMinorMicro = majorMinor + '.' + str(sys.version_info[2])
|
||||
if expectedVersion != majorMinorMicro:
|
||||
raise Exception("Incorrect major + minor + micro version detected\nExpected: " + expectedVersion + "\nActual: " + majorMinorMicro)
|
||||
else:
|
||||
raise Exception("Incorrect number of arguments supplied")
|
||||
print("Correct version of Python " + expectedVersion + " detected")
|
||||
else:
|
||||
raise Exception("Incorrect number of arguments supplied")
|
||||
Reference in New Issue
Block a user