Compare commits
12
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c7092773a3 | ||
|
|
6849080452 | ||
|
|
0903b469fb | ||
|
|
ece7cb06ca | ||
|
|
1d18d7af5f | ||
|
|
d2b357a6a3 | ||
|
|
8f639b1e75 | ||
|
|
6731c2ba87 | ||
|
|
0cb1a84326 | ||
|
|
dc6eab6194 | ||
|
|
6f4b74bfa2 | ||
|
|
fa8bde1a9c |
@@ -23,15 +23,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -50,15 +53,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.1t, 3.13.2t, 3.13.5t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -90,15 +96,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0, 3.13.1, 3.13.2]
|
||||
python-version: [3.13.14, 3.14.6]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Install poetry
|
||||
@@ -122,15 +128,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -150,15 +159,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.1t, 3.13.2t, 3.13.5t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -191,15 +203,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -219,15 +234,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -248,15 +266,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -274,15 +295,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python-version: [3.13.14t, 3.14.6t]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: 3.13.14t
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
|
||||
@@ -23,30 +23,23 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version:
|
||||
[
|
||||
'3.9',
|
||||
'pypy-3.9-v7.x',
|
||||
'3.10',
|
||||
'pypy-3.10-v7.x',
|
||||
'3.11',
|
||||
'pypy-3.11-v7.x',
|
||||
'3.12',
|
||||
'3.13'
|
||||
]
|
||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: macos-latest
|
||||
python-version: pypy-3.9-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -66,27 +59,22 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version:
|
||||
['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
|
||||
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04-arm
|
||||
python-version: pypy-3.10-v7.x
|
||||
- os: ubuntu-22.04-arm
|
||||
- os: windows-11-arm
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04-arm
|
||||
python-version: pypy-3.10-v7.x
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -123,29 +111,30 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version:
|
||||
[
|
||||
'3.9',
|
||||
'pypy-3.9-v7.x',
|
||||
'3.10',
|
||||
'pypy-3.10-v7.x',
|
||||
'3.11',
|
||||
'pypy-3.11-v7.x',
|
||||
'3.12',
|
||||
'3.13'
|
||||
]
|
||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Install poetry
|
||||
run: pipx install poetry
|
||||
run: |
|
||||
pipx install poetry
|
||||
- name: Init pyproject.toml
|
||||
run: mv ./__tests__/data/pyproject.toml .
|
||||
- name: Setup Python
|
||||
@@ -153,6 +142,10 @@ jobs:
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
cache: 'poetry'
|
||||
- name: Bootstrap packaging
|
||||
run: |
|
||||
python -m ensurepip --upgrade
|
||||
python -m pip install --upgrade pip setuptools wheel packaging
|
||||
- name: Install dependencies
|
||||
run: poetry install --no-root
|
||||
|
||||
@@ -164,30 +157,23 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version:
|
||||
[
|
||||
'3.9',
|
||||
'pypy-3.9-v7.x',
|
||||
'3.10',
|
||||
'pypy-3.10-v7.x',
|
||||
'3.11',
|
||||
'pypy-3.11-v7.x',
|
||||
'3.12',
|
||||
'3.13'
|
||||
]
|
||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: macos-latest
|
||||
python-version: pypy-3.9-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -207,24 +193,21 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version:
|
||||
['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
|
||||
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04
|
||||
python-version: pypy-3.11-v7.x
|
||||
- os: ubuntu-22.04-arm
|
||||
python-version: pypy-3.10-v7.x
|
||||
- os: ubuntu-22.04-arm
|
||||
- os: windows-11-arm
|
||||
python-version: pypy-3.11-v7.x
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -263,15 +246,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -291,15 +277,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -320,15 +309,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
@@ -346,15 +338,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
windows-latest,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python
|
||||
|
||||
@@ -19,30 +19,25 @@ jobs:
|
||||
matrix:
|
||||
operating-system:
|
||||
[
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
macos-latest,
|
||||
macos-15-intel
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: Run with setup-python 3.9.13
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.9.13
|
||||
- name: Verify 3.9.13
|
||||
run: python __tests__/verify-python.py 3.9.13
|
||||
|
||||
- name: Run with setup-python 3.10.11
|
||||
if: matrix.operating-system != 'windows-11-arm'
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.10.11
|
||||
- name: Verify 3.10.11
|
||||
if: matrix.operating-system != 'windows-11-arm'
|
||||
run: python __tests__/verify-python.py 3.10.11
|
||||
|
||||
- name: Run with setup-python 3.11.9
|
||||
@@ -52,51 +47,58 @@ jobs:
|
||||
- name: Verify 3.11.9
|
||||
run: python __tests__/verify-python.py 3.11.9
|
||||
|
||||
- name: Run with setup-python 3.12.7
|
||||
- name: Run with setup-python 3.12.10
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.12.7
|
||||
- name: Verify 3.12.7
|
||||
run: python __tests__/verify-python.py 3.12.7
|
||||
python-version: 3.12.10
|
||||
- name: Verify 3.12.10
|
||||
run: python __tests__/verify-python.py 3.12.10
|
||||
|
||||
- name: Run with setup-python 3.13.0
|
||||
- name: Run with setup-python 3.13.14
|
||||
uses: ./
|
||||
with:
|
||||
python-version: 3.13.0
|
||||
- name: Verify 3.13.0
|
||||
run: python __tests__/verify-python.py 3.13.0
|
||||
python-version: 3.13.14
|
||||
- name: Verify 3.13.14
|
||||
run: python __tests__/verify-python.py 3.13.14
|
||||
|
||||
- name: Run with setup-python 3.13
|
||||
id: cp313
|
||||
- name: Run with setup-python 3.14.6
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.13'
|
||||
- name: Verify 3.13
|
||||
run: python __tests__/verify-python.py 3.13
|
||||
python-version: 3.14.6
|
||||
- name: Verify 3.14.6
|
||||
run: python __tests__/verify-python.py 3.14.6
|
||||
|
||||
- name: Run with setup-python 3.14
|
||||
id: cp314
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14'
|
||||
- name: Verify 3.14
|
||||
run: python __tests__/verify-python.py 3.14
|
||||
|
||||
- name: Install pipx (Windows)
|
||||
if: runner. os == 'Windows'
|
||||
if: runner.os == 'Windows'
|
||||
run: python -m pip install pipx
|
||||
|
||||
- name: Run python-path sample 3.13
|
||||
run: pipx run --python '${{ steps.cp313.outputs.python-path }}' nox --version
|
||||
- name: Run python-path sample 3.14
|
||||
run: pipx run --python '${{ steps.cp314.outputs.python-path }}' nox --version
|
||||
env:
|
||||
PIPX_HOME: '${{ runner.temp }}/pipx'
|
||||
PIPX_BIN_DIR: '${{ runner.temp }}/pipx/bin'
|
||||
|
||||
- name: Run with setup-python ==3.13
|
||||
- name: Run with setup-python ==3.14
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '==3.13'
|
||||
- name: Verify ==3.13
|
||||
run: python __tests__/verify-python.py 3.13
|
||||
python-version: '==3.14'
|
||||
- name: Verify ==3.14
|
||||
run: python __tests__/verify-python.py 3.14
|
||||
|
||||
- name: Run with setup-python <3.13
|
||||
- name: Run with setup-python <3.14
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '<3.13'
|
||||
- name: Verify <3.13
|
||||
run: python __tests__/verify-python.py 3.12
|
||||
python-version: '<3.14'
|
||||
- name: Verify <3.14
|
||||
run: python __tests__/verify-python.py 3.13
|
||||
|
||||
- name: Test Raw Endpoint Access
|
||||
run: |
|
||||
|
||||
@@ -28,10 +28,9 @@ jobs:
|
||||
macos-15-intel
|
||||
]
|
||||
graalpy:
|
||||
- 'graalpy-22.3'
|
||||
- 'graalpy-23.0'
|
||||
- 'graalpy-23.1'
|
||||
- 'graalpy-24.1'
|
||||
- 'graalpy-24.2'
|
||||
- 'graalpy-25.0'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -82,7 +81,7 @@ jobs:
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
]
|
||||
graalpy: ['graalpy22.3', 'graalpy23.0', 'graalpy23.1', 'graalpy24.1']
|
||||
graalpy: ['graalpy23.1', 'graalpy24.2', 'graalpy25.0']
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -113,7 +112,7 @@ jobs:
|
||||
uses: ./
|
||||
id: graalpy
|
||||
with:
|
||||
python-version: 'graalpy-24.x'
|
||||
python-version: 'graalpy-25.x'
|
||||
check-latest: true
|
||||
- name: GraalPy and Python version
|
||||
run: python --version
|
||||
|
||||
@@ -22,27 +22,20 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
pypy:
|
||||
- 'pypy-2.7'
|
||||
- 'pypy-3.10'
|
||||
- 'pypy3.9'
|
||||
- 'pypy-2.7-v7.3.17'
|
||||
- 'pypy-3.10-v7.3.17'
|
||||
- 'pypy-3.10-v7.3.16'
|
||||
- 'pypy-3.10-v7.3.x'
|
||||
- 'pypy-3.10-v7.x'
|
||||
- 'pypy-2.7-v7.3.12rc1'
|
||||
- 'pypy-3.10-nightly'
|
||||
- 'pypy3.10-v7.3.17'
|
||||
- 'pypy3.11-v7.3.19'
|
||||
- 'pypy-3.11'
|
||||
- 'pypy-3.11-v7.3.23'
|
||||
- 'pypy-3.11-v7.3.x'
|
||||
- 'pypy-3.11-v7.x'
|
||||
- 'pypy-3.11-nightly'
|
||||
- 'pypy3.11-v7.3.23'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -85,16 +78,15 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- macos-15-intel
|
||||
- macos-14
|
||||
- macos-15
|
||||
- windows-2022
|
||||
- windows-2025
|
||||
- ubuntu-22.04
|
||||
- ubuntu-24.04
|
||||
- ubuntu-22.04-arm
|
||||
- ubuntu-24.04-arm
|
||||
pypy: ['pypy-2.7', 'pypy-3.10', 'pypy-3.11']
|
||||
[
|
||||
ubuntu-22.04,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
pypy: ['pypy-3.11']
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -138,15 +130,14 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
pypy: ['pypy2.7', 'pypy3.9', 'pypy3.10-nightly', 'pypy3.11']
|
||||
pypy: ['pypy3.11-nightly', 'pypy3.11']
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -172,13 +163,12 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -214,13 +204,12 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -230,7 +219,6 @@ jobs:
|
||||
python-version: |
|
||||
pypy-3.11-v7.3.x
|
||||
pypy-3.10-v7.3.x
|
||||
pypy3.9
|
||||
check-latest: true
|
||||
- name: PyPy and Python version
|
||||
run: python --version
|
||||
@@ -248,13 +236,13 @@ jobs:
|
||||
run: |
|
||||
EXECUTABLE="pypy-3.11-v7.3.x"
|
||||
EXECUTABLE=${EXECUTABLE/-/} # remove the first '-' in "pypy-X.Y" -> "pypyX.Y" to match executable name
|
||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffix
|
||||
${EXECUTABLE} --version
|
||||
shell: bash
|
||||
- name: Assert expected binaries (or symlinks) are present
|
||||
run: |
|
||||
EXECUTABLE='pypy3.9'
|
||||
EXECUTABLE='pypy-3.10-v7.3.x'
|
||||
EXECUTABLE=${EXECUTABLE/pypy-/pypy} # remove the first '-' in "pypy-X.Y" -> "pypyX.Y" to match executable name
|
||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffix
|
||||
${EXECUTABLE} --version
|
||||
shell: bash
|
||||
|
||||
@@ -22,15 +22,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python: [3.13.14t, 3.14.6t]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -59,15 +59,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python: [3.13.14t, 3.14.6t]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -99,15 +99,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python: [3.13.14t, 3.14.6t]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -137,15 +137,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0, 3.13.1, 3.13.2]
|
||||
python: [3.13.14, 3.14.6]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -178,15 +178,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0, 3.13.1, 3.13.2]
|
||||
python: [3.13.14, 3.14.6]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -219,15 +219,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
|
||||
python: [3.13.14t, 3.14.6t, 3.15t-dev]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -250,15 +250,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13t, 3.14t-dev]
|
||||
python: [3.13t, 3.15t-dev]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -290,15 +290,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t, 3.14t-dev]
|
||||
python: [3.13.14t, 3.14.6t, 3.15t-dev]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -323,30 +323,30 @@ jobs:
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-pre-release-version-from-manifest:
|
||||
name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
|
||||
name: Setup 3.15.0-beta.3 ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14.0-alpha.6
|
||||
- name: setup-python 3.15.0-beta.3
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14.0-alpha.6'
|
||||
python-version: '3.15.0-beta.3'
|
||||
freethreaded: true
|
||||
|
||||
- name: Check python-path
|
||||
@@ -360,67 +360,67 @@ jobs:
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-dev-version:
|
||||
name: Setup 3.14t-dev ${{ matrix.os }}
|
||||
name: Setup 3.15t-dev ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14t-dev
|
||||
- name: setup-python 3.15t-dev
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14t-dev'
|
||||
python-version: '3.15t-dev'
|
||||
|
||||
- name: Check python-path
|
||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||
shell: bash
|
||||
|
||||
- name: Validate version
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.14.') }}
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
||||
shell: bash
|
||||
|
||||
- name: Run simple code
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-prerelease-version:
|
||||
name: Setup 3.14t ${{ matrix.os }}
|
||||
name: Setup 3.15t ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14t
|
||||
- name: setup-python 3.15t
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14t'
|
||||
python-version: '3.15t'
|
||||
allow-prereleases: true
|
||||
|
||||
- name: Check python-path
|
||||
@@ -428,7 +428,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Validate version
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.14.') }}
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
||||
shell: bash
|
||||
|
||||
- name: Run simple code
|
||||
@@ -442,15 +442,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.0t, 3.13.1t, 3.13.2t]
|
||||
python: [3.13.14t, 3.14.6t]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -475,15 +475,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: [3.13t, 3.14t-dev]
|
||||
python-version: [3.13t, 3.15t-dev]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python and check latest
|
||||
@@ -502,24 +502,24 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python and check latest
|
||||
- name: Setup multiple Python versions
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: |
|
||||
3.13.1t
|
||||
3.13.2t
|
||||
3.14t-dev
|
||||
3.13.14t
|
||||
3.14.6t
|
||||
3.15t-dev
|
||||
- name: Verify Python version
|
||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
||||
|
||||
@@ -531,15 +531,15 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.13.1, 3.13.2, 3.14-dev, 3.14.0-alpha.6]
|
||||
python: [3.13.14, 3.14.6, 3.15-dev, 3.15.0-beta.3]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
@@ -22,15 +22,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -66,15 +69,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -113,15 +119,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -158,15 +167,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, '==3.12.3', 3.13.2]
|
||||
python: [3.10.11, 3.11.9, '==3.12.10', 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -208,15 +220,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.12.3, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -258,18 +273,22 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [pypy3.11-7.3.18, graalpy-24.1.2, 3.13.2, 3.14-dev]
|
||||
python: [pypy3.11-7.3.18, graalpy-24.1.2, 3.13.14, 3.15-dev]
|
||||
exclude:
|
||||
- os: windows-latest
|
||||
python: graalpy-24.1.2
|
||||
- os: windows-11-arm
|
||||
python: graalpy-24.1.2
|
||||
- os: windows-11-arm
|
||||
python: pypy3.11-7.3.18
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -292,15 +311,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -342,15 +364,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: [3.9.13, 3.10.11, 3.11.9, 3.13.2]
|
||||
python: [3.10.11, 3.11.9, 3.13.14, 3.14.6]
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: 3.10.11
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -385,30 +410,30 @@ jobs:
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-pre-release-version-from-manifest:
|
||||
name: Setup 3.14.0-alpha.6 ${{ matrix.os }}
|
||||
name: Setup 3.15.0-beta.3 ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14.0-alpha.6
|
||||
- name: setup-python 3.15.0-beta.3
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14.0-alpha.6'
|
||||
python-version: '3.15.0-beta.3'
|
||||
|
||||
- name: Check python-path
|
||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||
@@ -417,8 +442,8 @@ jobs:
|
||||
- name: Validate version
|
||||
run: |
|
||||
$pythonVersion = (python --version)
|
||||
if ("Python 3.14.0a6" -ne "$pythonVersion"){
|
||||
Write-Host "The current version is $pythonVersion; expected version is 3.14.0a6"
|
||||
if ("Python 3.15.0b3" -ne "$pythonVersion"){
|
||||
Write-Host "The current version is $pythonVersion; expected version is 3.15.0b3"
|
||||
exit 1
|
||||
}
|
||||
$pythonVersion
|
||||
@@ -428,67 +453,67 @@ jobs:
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-dev-version:
|
||||
name: Setup 3.14-dev ${{ matrix.os }}
|
||||
name: Setup 3.15-dev ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14-dev
|
||||
- name: setup-python 3.15-dev
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14-dev'
|
||||
python-version: '3.15-dev'
|
||||
|
||||
- name: Check python-path
|
||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||
shell: bash
|
||||
|
||||
- name: Validate version
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.14.') }}
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
||||
shell: bash
|
||||
|
||||
- name: Run simple code
|
||||
run: python -c 'import math; print(math.factorial(5))'
|
||||
|
||||
setup-prerelease-version:
|
||||
name: Setup 3.14 ${{ matrix.os }}
|
||||
name: Setup 3.15 ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
|
||||
- name: setup-python 3.14
|
||||
- name: setup-python 3.15
|
||||
id: setup-python
|
||||
uses: ./
|
||||
with:
|
||||
python-version: '3.14'
|
||||
python-version: '3.15'
|
||||
allow-prereleases: true
|
||||
|
||||
- name: Check python-path
|
||||
@@ -496,7 +521,7 @@ jobs:
|
||||
shell: bash
|
||||
|
||||
- name: Validate version
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.14.') }}
|
||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
||||
shell: bash
|
||||
|
||||
- name: Run simple code
|
||||
@@ -510,15 +535,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
macos-15-intel,
|
||||
ubuntu-latest,
|
||||
ubuntu-24.04-arm
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python: '3.10'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
@@ -543,15 +571,18 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
||||
exclude:
|
||||
- os: windows-11-arm
|
||||
python-version: '3.10'
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Setup Python and check latest
|
||||
@@ -576,13 +607,13 @@ jobs:
|
||||
matrix:
|
||||
os:
|
||||
[
|
||||
macos-latest,
|
||||
windows-latest,
|
||||
ubuntu-22.04,
|
||||
ubuntu-22.04-arm,
|
||||
ubuntu-24.04-arm,
|
||||
ubuntu-latest,
|
||||
macos-15-intel
|
||||
ubuntu-24.04-arm,
|
||||
windows-latest,
|
||||
windows-11-arm,
|
||||
macos-15-intel,
|
||||
macos-latest
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
@@ -590,17 +621,16 @@ jobs:
|
||||
uses: ./
|
||||
with:
|
||||
python-version: |
|
||||
3.9
|
||||
3.10
|
||||
3.11
|
||||
3.12
|
||||
3.13
|
||||
3.14
|
||||
check-latest: true
|
||||
- name: Validate version
|
||||
run: |
|
||||
$pythonVersion = (python --version)
|
||||
if ("$pythonVersion" -NotMatch "3.13"){
|
||||
Write-Host "The current version is $pythonVersion; expected version is 3.13"
|
||||
if ("$pythonVersion" -NotMatch "3.14"){
|
||||
Write-Host "The current version is $pythonVersion; expected version is 3.14"
|
||||
exit 1
|
||||
}
|
||||
$pythonVersion
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: "@actions/cache"
|
||||
version: 5.0.5
|
||||
version: 5.1.0
|
||||
type: npm
|
||||
summary: Actions cache lib
|
||||
homepage: https://github.com/actions/toolkit/tree/main/packages/cache
|
||||
|
||||
Generated
+11
@@ -0,0 +1,11 @@
|
||||
---
|
||||
name: "@nodable/entities"
|
||||
version: 2.2.0
|
||||
type: npm
|
||||
summary: Entity parser for XML, HTML, External entites with security and NCR control
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: README.md
|
||||
text: MIT
|
||||
notices: []
|
||||
Generated
+35
@@ -0,0 +1,35 @@
|
||||
---
|
||||
name: anynum
|
||||
version: 1.0.1
|
||||
type: npm
|
||||
summary: Normalize all Unicode decimal digits (Devanagari, Arabic, Thai, etc.) to
|
||||
ASCII numerals. Zero dependencies, performance-first.
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: LICENSE
|
||||
text: |
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Natural Intelligence
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
- sources: README.md
|
||||
text: MIT
|
||||
notices: []
|
||||
Generated
+2
-2
@@ -1,9 +1,9 @@
|
||||
---
|
||||
name: fast-xml-builder
|
||||
version: 1.1.4
|
||||
version: 1.2.0
|
||||
type: npm
|
||||
summary: Build XML from JSON without C/C++ based libraries
|
||||
homepage:
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: LICENSE
|
||||
|
||||
Generated
+2
-2
@@ -1,9 +1,9 @@
|
||||
---
|
||||
name: fast-xml-parser
|
||||
version: 5.5.10
|
||||
version: 5.9.2
|
||||
type: npm
|
||||
summary: Validate XML, Parse XML, Build XML without C/C++ based libraries
|
||||
homepage:
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: LICENSE
|
||||
|
||||
Generated
+35
@@ -0,0 +1,35 @@
|
||||
---
|
||||
name: is-unsafe
|
||||
version: 1.0.1
|
||||
type: npm
|
||||
summary: Zero-dependency, DOM-free, pure predicate for detecting unsafe strings across
|
||||
HTML, XML, SVG, SQL, SHELL, and REGEX contexts
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: LICENSE
|
||||
text: |
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Natural Intelligence
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
- sources: README.md
|
||||
text: MIT
|
||||
notices: []
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: path-expression-matcher
|
||||
version: 1.4.0
|
||||
version: 1.5.0
|
||||
type: npm
|
||||
summary: Efficient path tracking and pattern matching for XML/JSON parsers
|
||||
homepage: https://github.com/NaturalIntelligence/path-expression-matcher#readme
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: semver
|
||||
version: 7.7.3
|
||||
version: 7.8.5
|
||||
type: npm
|
||||
summary: The semantic version parser used by npm.
|
||||
homepage:
|
||||
Generated
+2
-2
@@ -1,9 +1,9 @@
|
||||
---
|
||||
name: strnum
|
||||
version: 2.2.3
|
||||
version: 2.4.1
|
||||
type: npm
|
||||
summary: Parse String to Number based on configuration
|
||||
homepage:
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: LICENSE
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: undici
|
||||
version: 6.24.1
|
||||
version: 6.27.0
|
||||
type: npm
|
||||
summary: An HTTP/1.1 client, written from scratch for Node.js
|
||||
homepage: https://undici.nodejs.org
|
||||
|
||||
Generated
+12
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: xml-naming
|
||||
version: 0.1.0
|
||||
type: npm
|
||||
summary: Validates XML name productions — Name, NCName, QName, NMToken, NMTokens —
|
||||
for XML 1.0 and 1.1
|
||||
homepage:
|
||||
license: mit
|
||||
licenses:
|
||||
- sources: README.md
|
||||
text: MIT
|
||||
notices: []
|
||||
@@ -190,19 +190,12 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
||||
|
||||
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}`
|
||||
);
|
||||
}
|
||||
const osSegment =
|
||||
process.platform === 'linux' ? '-20.04-Ubuntu' : '';
|
||||
const versionSuffix = packageManager === 'poetry' ? '-v2' : '';
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${pythonVersion}-${packageManager}${versionSuffix}-${fileHash}`
|
||||
);
|
||||
} else {
|
||||
expect(infoSpy).toHaveBeenCalledWith(
|
||||
`${packageManager} cache is not found`
|
||||
|
||||
@@ -5,7 +5,7 @@ name = "pypi"
|
||||
|
||||
[packages]
|
||||
flake8 = "==6.0.0"
|
||||
numpy = "==2.2.4"
|
||||
numpy = "==2.4.6"
|
||||
|
||||
[dev-packages]
|
||||
|
||||
|
||||
Generated
+75
-58
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "9d0bc7ff1f9078396b19f05bc5cd57894f3783c68f96fa9d623b1ea5a1b168f5"
|
||||
"sha256": "0060d5c4915f1f35aae1f3e9fa6de3f65d1a851e6e33ac57a04665d5d1c796fa"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@@ -35,65 +35,82 @@
|
||||
},
|
||||
"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"
|
||||
"sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1",
|
||||
"sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4",
|
||||
"sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f",
|
||||
"sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079",
|
||||
"sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096",
|
||||
"sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47",
|
||||
"sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66",
|
||||
"sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d",
|
||||
"sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1",
|
||||
"sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e",
|
||||
"sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147",
|
||||
"sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd",
|
||||
"sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75",
|
||||
"sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063",
|
||||
"sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73",
|
||||
"sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab",
|
||||
"sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4",
|
||||
"sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41",
|
||||
"sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402",
|
||||
"sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698",
|
||||
"sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7",
|
||||
"sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8",
|
||||
"sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b",
|
||||
"sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8",
|
||||
"sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0",
|
||||
"sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662",
|
||||
"sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91",
|
||||
"sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0",
|
||||
"sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f",
|
||||
"sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3",
|
||||
"sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f",
|
||||
"sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67",
|
||||
"sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6",
|
||||
"sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997",
|
||||
"sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b",
|
||||
"sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e",
|
||||
"sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538",
|
||||
"sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627",
|
||||
"sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93",
|
||||
"sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02",
|
||||
"sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853",
|
||||
"sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c",
|
||||
"sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43",
|
||||
"sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd",
|
||||
"sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8",
|
||||
"sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089",
|
||||
"sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778",
|
||||
"sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1",
|
||||
"sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb",
|
||||
"sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261",
|
||||
"sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb",
|
||||
"sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a",
|
||||
"sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8",
|
||||
"sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359",
|
||||
"sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5",
|
||||
"sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7",
|
||||
"sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751",
|
||||
"sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8",
|
||||
"sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605",
|
||||
"sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e",
|
||||
"sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45",
|
||||
"sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2",
|
||||
"sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895",
|
||||
"sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe",
|
||||
"sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb",
|
||||
"sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a",
|
||||
"sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577",
|
||||
"sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d",
|
||||
"sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a",
|
||||
"sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda",
|
||||
"sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6",
|
||||
"sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20"
|
||||
],
|
||||
"index": "pypi",
|
||||
"markers": "python_version >= '3.10'",
|
||||
"version": "==2.2.4"
|
||||
"markers": "python_version >= '3.11'",
|
||||
"version": "==2.4.6"
|
||||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
|
||||
@@ -9,6 +9,7 @@ python = ">=3.9,<3.14"
|
||||
flake8 = "^4.0.1"
|
||||
pyinstaller = "6.10.0"
|
||||
setuptools = ">=78.1.1"
|
||||
packaging = ">=22.0,<26"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
certifi==2020.6.20
|
||||
certifi==2024.7.4
|
||||
chardet==3.0.4
|
||||
docutils==0.16
|
||||
idna==3.7
|
||||
idna==3.15
|
||||
Kivy==2.0.0rc3
|
||||
Kivy-Garden==0.1.4
|
||||
packaging==20.7
|
||||
pdf2image==1.12.1
|
||||
Pygments==2.6.1
|
||||
requests==2.32.4
|
||||
urllib3==2.6.3
|
||||
Pygments==2.20.0
|
||||
requests==2.33.0
|
||||
urllib3==2.7.0
|
||||
xlrd==1.2.0
|
||||
@@ -1,6 +1,6 @@
|
||||
altgraph==0.17.2
|
||||
|
||||
certifi==2020.6.20
|
||||
certifi==2024.7.4
|
||||
|
||||
chardet==3.0.4
|
||||
|
||||
@@ -8,7 +8,7 @@ docutils==0.16
|
||||
|
||||
future==0.18.2; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'
|
||||
|
||||
idna==3.7
|
||||
idna==3.15
|
||||
|
||||
itsdangerous==1.1.0
|
||||
|
||||
@@ -32,7 +32,7 @@ pefile==2021.9.3; python_full_version >= '3.6.0'
|
||||
|
||||
pillow>=10.2.0
|
||||
|
||||
pygments==2.6.1
|
||||
pygments==2.20.0
|
||||
|
||||
pyinstaller==6.10.0
|
||||
|
||||
@@ -40,8 +40,8 @@ pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3
|
||||
|
||||
pywin32-ctypes==0.2.0
|
||||
|
||||
requests==2.32.4
|
||||
requests==2.33.0
|
||||
|
||||
urllib3==2.6.3
|
||||
urllib3==2.7.0
|
||||
|
||||
xlrd==1.2.0
|
||||
Vendored
+5791
-116
File diff suppressed because one or more lines are too long
Vendored
+592
-157
File diff suppressed because one or more lines are too long
@@ -555,8 +555,8 @@ GitHub hosted runners have a tool cache that comes with a few versions of Python
|
||||
|**PyPy tool cache**|`RUNNER_TOOL_CACHE/PyPy/*`|
|
||||
|
||||
GitHub runner images are set up in [actions/runner-images](https://github.com/actions/runner-images). During the setup, the available versions of Python and PyPy are automatically downloaded, set up and documented.
|
||||
- Tool cache setup for Ubuntu: [Install-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/linux/scripts/installers/Install-Toolset.ps1) [Configure-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/linux/scripts/installers/Configure-Toolset.ps1)
|
||||
- Tool cache setup for Windows: [Install-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/win/scripts/Installers/Install-Toolset.ps1) [Configure-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/win/scripts/Installers/Configure-Toolset.ps1)
|
||||
- Tool cache setup for Ubuntu: [Install-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/ubuntu/scripts/build/Install-Toolset.ps1) [Configure-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/ubuntu/scripts/build/Configure-Toolset.ps1)
|
||||
- Tool cache setup for Windows: [Install-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Install-Toolset.ps1) [Configure-Toolset.ps1](https://github.com/actions/runner-images/blob/main/images/windows/scripts/build/Configure-Toolset.ps1)
|
||||
|
||||
|
||||
## Using `setup-python` with a self-hosted runner
|
||||
|
||||
Generated
+476
-5410
File diff suppressed because it is too large
Load Diff
+7
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "setup-python",
|
||||
"version": "6.2.0",
|
||||
"version": "6.3.0",
|
||||
"private": true,
|
||||
"description": "Setup python action",
|
||||
"main": "dist/index.js",
|
||||
@@ -28,7 +28,7 @@
|
||||
"author": "GitHub",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/cache": "^5.0.5",
|
||||
"@actions/cache": "^5.1.0",
|
||||
"@actions/core": "^2.0.3",
|
||||
"@actions/exec": "^2.0.0",
|
||||
"@actions/glob": "^0.5.1",
|
||||
@@ -39,7 +39,7 @@
|
||||
"semver": "^7.7.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^30.0.0",
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/node": "^24.10.1",
|
||||
"@types/semver": "^7.7.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
||||
@@ -49,10 +49,13 @@
|
||||
"eslint-config-prettier": "^8.6.0",
|
||||
"eslint-plugin-jest": "^27.9.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"jest": "^30.4.2",
|
||||
"jest": "^29.7.0",
|
||||
"jest-circus": "^29.7.0",
|
||||
"prettier": "^3.6.2",
|
||||
"ts-jest": "^29.3.2",
|
||||
"typescript": "^5.9.3"
|
||||
},
|
||||
"overrides": {
|
||||
"fast-xml-parser": "^5.9.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as cache from '@actions/cache';
|
||||
import * as core from '@actions/core';
|
||||
import {getOSInfo, IS_LINUX} from '../utils';
|
||||
import {CACHE_DEPENDENCY_BACKUP_PATH} from './constants';
|
||||
|
||||
export enum State {
|
||||
@@ -22,6 +23,33 @@ abstract class CacheDistributor {
|
||||
}>;
|
||||
protected async handleLoadedCache() {}
|
||||
|
||||
/**
|
||||
* Builds the Linux distro portion of a cache key (e.g. `-26.04-Ubuntu`, `-9-rhel`).
|
||||
* RHEL is keyed by major version since it ships one ABI-stable artifact per major.
|
||||
*/
|
||||
protected async getLinuxInfoKeySegment(): Promise<string> {
|
||||
if (!IS_LINUX) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const osInfo = await getOSInfo();
|
||||
if (!osInfo) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// lsb_release reports RHEL as "RedHatEnterpriseLinux" while /etc/os-release
|
||||
// reports it as "rhel"; normalize both to "rhel" so the key is consistent.
|
||||
const normalizedName = osInfo.osName.toLowerCase();
|
||||
const isRhel =
|
||||
normalizedName === 'rhel' || normalizedName.includes('redhat');
|
||||
const osName = isRhel ? 'rhel' : osInfo.osName;
|
||||
const osVersion = isRhel
|
||||
? osInfo.osVersion.split('.')[0]
|
||||
: osInfo.osVersion;
|
||||
|
||||
return `-${osVersion}-${osName}`;
|
||||
}
|
||||
|
||||
public async restoreCache() {
|
||||
const {primaryKey, restoreKey} = await this.computeKeys();
|
||||
if (primaryKey.endsWith('-')) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import * as path from 'path';
|
||||
import os from 'os';
|
||||
|
||||
import CacheDistributor from './cache-distributor';
|
||||
import {getLinuxInfo, IS_LINUX, IS_WINDOWS} from '../utils';
|
||||
import {IS_WINDOWS} from '../utils';
|
||||
import {CACHE_DEPENDENCY_BACKUP_PATH} from './constants';
|
||||
|
||||
class PipCache extends CacheDistributor {
|
||||
@@ -21,24 +21,28 @@ class PipCache extends CacheDistributor {
|
||||
}
|
||||
|
||||
protected async getCacheGlobalDirectories() {
|
||||
let exitCode = 1;
|
||||
let exitCode = 0;
|
||||
let stdout = '';
|
||||
let stderr = '';
|
||||
|
||||
// Add temporary fix for Windows
|
||||
// On windows it is necessary to execute through an exec
|
||||
// because the getExecOutput gives a non zero code or writes to stderr for pip 22.0.2,
|
||||
// On Windows, it is necessary to execute through an exec
|
||||
// because the getExecOutput gives a non-zero code or writes to stderr for pip 22.0.2,
|
||||
// or spawn must be started with the shell option enabled for getExecOutput
|
||||
// Related issue: https://github.com/actions/setup-python/issues/328
|
||||
if (IS_WINDOWS) {
|
||||
const execPromisify = utils.promisify(child_process.exec);
|
||||
({stdout: stdout, stderr: stderr} = await execPromisify('pip cache dir'));
|
||||
try {
|
||||
({stdout, stderr} = await execPromisify('pip cache dir'));
|
||||
} catch (err) {
|
||||
// Pip outputs warnings to stderr (e.g., --no-python-version-warning flag deprecation warning), causing false failure detection
|
||||
// Related issue: https://github.com/actions/setup-python/issues/1034
|
||||
// If an error occurs, capture stderr and set exitCode to 1 to indicate failure
|
||||
stderr = (err as any).stderr ?? (err as Error).message;
|
||||
exitCode = 1;
|
||||
}
|
||||
} else {
|
||||
({
|
||||
stdout: stdout,
|
||||
stderr: stderr,
|
||||
exitCode: exitCode
|
||||
} = await exec.getExecOutput('pip cache dir'));
|
||||
({stdout, stderr, exitCode} = await exec.getExecOutput('pip cache dir'));
|
||||
}
|
||||
|
||||
if (exitCode && stderr) {
|
||||
@@ -62,17 +66,9 @@ class PipCache extends CacheDistributor {
|
||||
const hash =
|
||||
(await glob.hashFiles(this.cacheDependencyPath)) ||
|
||||
(await glob.hashFiles(this.cacheDependencyBackupPath));
|
||||
let primaryKey = '';
|
||||
let restoreKey = '';
|
||||
|
||||
if (IS_LINUX) {
|
||||
const osInfo = await getLinuxInfo();
|
||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${osInfo.osVersion}-${osInfo.osName}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||
} else {
|
||||
primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||
restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||
}
|
||||
const osSegment = await this.getLinuxInfoKeySegment();
|
||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||
const restoreKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${this.pythonVersion}-${this.packageManager}`;
|
||||
|
||||
return {
|
||||
primaryKey,
|
||||
|
||||
@@ -32,7 +32,8 @@ class PipenvCache extends CacheDistributor {
|
||||
|
||||
protected async computeKeys() {
|
||||
const hash = await glob.hashFiles(this.patterns);
|
||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||
const osSegment = await this.getLinuxInfoKeySegment();
|
||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${this.pythonVersion}-${this.packageManager}-${hash}`;
|
||||
const restoreKey = undefined;
|
||||
return {
|
||||
primaryKey,
|
||||
|
||||
@@ -46,8 +46,9 @@ class PoetryCache extends CacheDistributor {
|
||||
|
||||
protected async computeKeys() {
|
||||
const hash = await glob.hashFiles(this.patterns);
|
||||
const osSegment = await this.getLinuxInfoKeySegment();
|
||||
// "v2" is here to invalidate old caches of this cache distributor, which were created broken:
|
||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
||||
const primaryKey = `${this.CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${this.pythonVersion}-${this.packageManager}-v2-${hash}`;
|
||||
const restoreKey = undefined;
|
||||
return {
|
||||
primaryKey,
|
||||
|
||||
+5
-1
@@ -70,7 +70,11 @@ async function saveCache(packageManager: string) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cacheId == -1) {
|
||||
if (cacheId === -1) {
|
||||
// saveCache returns -1 without throwing when the cache was not saved, e.g.
|
||||
// a reserve collision or a read-only token (fork PR). @actions/cache has
|
||||
// already logged the reason at the appropriate severity, so just trace it.
|
||||
core.debug(`Cache was not saved for the key: ${primaryKey}`);
|
||||
return;
|
||||
}
|
||||
core.info(`Cache saved with the key: ${primaryKey}`);
|
||||
|
||||
+91
-1
@@ -3,6 +3,8 @@ import * as core from '@actions/core';
|
||||
import * as tc from '@actions/tool-cache';
|
||||
import * as exec from '@actions/exec';
|
||||
import * as httpm from '@actions/http-client';
|
||||
import * as fs from 'fs';
|
||||
import * as semver from 'semver';
|
||||
import {ExecOptions} from '@actions/exec/lib/interfaces';
|
||||
import {IS_WINDOWS, IS_LINUX, getDownloadFileName} from './utils';
|
||||
import {IToolRelease} from '@actions/tool-cache';
|
||||
@@ -14,6 +16,70 @@ const MANIFEST_REPO_NAME = 'python-versions';
|
||||
const MANIFEST_REPO_BRANCH = 'main';
|
||||
export const MANIFEST_URL = `https://raw.githubusercontent.com/${MANIFEST_REPO_OWNER}/${MANIFEST_REPO_NAME}/${MANIFEST_REPO_BRANCH}/versions-manifest.json`;
|
||||
|
||||
interface LinuxOsRelease {
|
||||
id: string;
|
||||
versionId: string;
|
||||
}
|
||||
|
||||
function getLinuxOsRelease(): LinuxOsRelease | null {
|
||||
try {
|
||||
const content = fs.readFileSync('/etc/os-release', 'utf8');
|
||||
const lines = content.split('\n');
|
||||
let id = '';
|
||||
let versionId = '';
|
||||
for (const line of lines) {
|
||||
const parts = line.split('=');
|
||||
if (parts.length === 2) {
|
||||
const key = parts[0].trim();
|
||||
const value = parts[1].trim().replace(/^"/, '').replace(/"$/, '');
|
||||
if (key === 'ID') id = value;
|
||||
if (key === 'VERSION_ID') versionId = value;
|
||||
}
|
||||
}
|
||||
if (id && versionId) {
|
||||
return {id, versionId};
|
||||
}
|
||||
return null;
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function findRhelRelease(
|
||||
semanticVersionSpec: string,
|
||||
architecture: string,
|
||||
manifest: tc.IToolRelease[],
|
||||
osVersion: string
|
||||
): tc.IToolRelease | undefined {
|
||||
for (const candidate of manifest) {
|
||||
const version = candidate.version;
|
||||
core.debug(`check ${version} satisfies ${semanticVersionSpec}`);
|
||||
|
||||
if (!semver.satisfies(version, semanticVersionSpec)) continue;
|
||||
|
||||
const file = candidate.files.find(item => {
|
||||
core.debug(
|
||||
`${item.arch}===${architecture} && ${item.platform}===rhel && ${item.platform_version}===${osVersion}`
|
||||
);
|
||||
const archMatch = item.arch === architecture;
|
||||
const platformMatch = item.platform === 'rhel';
|
||||
const versionMatch =
|
||||
!item.platform_version ||
|
||||
item.platform_version === osVersion ||
|
||||
osVersion.startsWith(item.platform_version);
|
||||
return archMatch && platformMatch && versionMatch;
|
||||
});
|
||||
|
||||
if (file) {
|
||||
core.debug(`matched ${candidate.version}`);
|
||||
const result = Object.assign({}, candidate);
|
||||
result.files = [file];
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export async function findReleaseFromManifest(
|
||||
semanticVersionSpec: string,
|
||||
architecture: string,
|
||||
@@ -23,6 +89,23 @@ export async function findReleaseFromManifest(
|
||||
manifest = await getManifest();
|
||||
}
|
||||
|
||||
// On RHEL, tc.findFromManifest() won't match because os.platform() returns 'linux'
|
||||
// but manifest entries use platform 'rhel'. Use custom filtering for RHEL.
|
||||
if (IS_LINUX) {
|
||||
const osRelease = getLinuxOsRelease();
|
||||
if (osRelease && osRelease.id === 'rhel') {
|
||||
core.debug(
|
||||
`Detected RHEL ${osRelease.versionId}, using custom manifest filtering`
|
||||
);
|
||||
return findRhelRelease(
|
||||
semanticVersionSpec,
|
||||
architecture,
|
||||
manifest,
|
||||
osRelease.versionId
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const foundRelease = await tc.findFromManifest(
|
||||
semanticVersionSpec,
|
||||
false,
|
||||
@@ -32,6 +115,7 @@ export async function findReleaseFromManifest(
|
||||
|
||||
return foundRelease;
|
||||
}
|
||||
|
||||
function isIToolRelease(obj: any): obj is IToolRelease {
|
||||
return (
|
||||
typeof obj === 'object' &&
|
||||
@@ -48,6 +132,7 @@ function isIToolRelease(obj: any): obj is IToolRelease {
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
export async function getManifest(): Promise<tc.IToolRelease[]> {
|
||||
try {
|
||||
const repoManifest = await getManifestFromRepo();
|
||||
@@ -108,7 +193,12 @@ async function installPython(workingDirectory: string) {
|
||||
core.info(data.toString().trim());
|
||||
},
|
||||
stderr: (data: Buffer) => {
|
||||
core.error(data.toString().trim());
|
||||
const msg = data.toString().trim();
|
||||
if (/^WARNING:/im.test(msg)) {
|
||||
core.warning(msg);
|
||||
} else {
|
||||
core.error(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
+29
-6
@@ -173,15 +173,38 @@ async function getMacOSInfo() {
|
||||
}
|
||||
|
||||
export async function getLinuxInfo() {
|
||||
const {stdout} = await exec.getExecOutput('lsb_release', ['-i', '-r', '-s'], {
|
||||
silent: true
|
||||
});
|
||||
try {
|
||||
const {stdout} = await exec.getExecOutput(
|
||||
'lsb_release',
|
||||
['-i', '-r', '-s'],
|
||||
{
|
||||
silent: true
|
||||
}
|
||||
);
|
||||
|
||||
const [osName, osVersion] = stdout.trim().split('\n');
|
||||
const [osName, osVersion] = stdout.trim().split('\n');
|
||||
core.debug(`OS Name: ${osName}, Version: ${osVersion}`);
|
||||
return {osName, osVersion};
|
||||
} catch (err) {
|
||||
core.debug(
|
||||
`lsb_release failed (${(err as Error).message}). Falling back to /etc/os-release.`
|
||||
);
|
||||
|
||||
core.debug(`OS Name: ${osName}, Version: ${osVersion}`);
|
||||
const osReleaseContent = fs.readFileSync('/etc/os-release', 'utf8');
|
||||
const osInfo: {[key: string]: string} = {};
|
||||
|
||||
return {osName: osName, osVersion: osVersion};
|
||||
osReleaseContent.split('\n').forEach(line => {
|
||||
const [key, value] = line.split('=');
|
||||
if (key && value) {
|
||||
osInfo[key.trim()] = value.trim().replace(/"/g, '');
|
||||
}
|
||||
});
|
||||
|
||||
const osName = osInfo['ID'] || 'Linux';
|
||||
const osVersion = osInfo['VERSION_ID'] || '';
|
||||
core.debug(`OS Name: ${osName}, Version: ${osVersion}`);
|
||||
return {osName, osVersion};
|
||||
}
|
||||
}
|
||||
|
||||
export async function getOSInfo() {
|
||||
|
||||
Reference in New Issue
Block a user