mirror of
https://github.com/actions/setup-python.git
synced 2026-09-17 10:01:28 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad3497abcd | ||
|
|
337b0725b8 | ||
|
|
751276eafc | ||
|
|
66fcabf4d0 | ||
|
|
9191ea1a55 | ||
|
|
8549b9f8f5 | ||
|
|
5fda3b95a4 | ||
|
|
4ab7e95f05 | ||
|
|
0f3a009f47 | ||
|
|
f8cf4291c8 | ||
|
|
54baeea5b3 | ||
|
|
c7092773a3 | ||
|
|
6849080452 | ||
|
|
0903b469fb | ||
|
|
ece7cb06ca | ||
|
|
1d18d7af5f | ||
|
|
d2b357a6a3 | ||
|
|
8f639b1e75 | ||
|
|
6731c2ba87 | ||
|
|
0cb1a84326 | ||
|
|
dc6eab6194 | ||
|
|
6f4b74bfa2 | ||
|
|
fa8bde1a9c | ||
|
|
c8813ba1bc | ||
|
|
28f2168f4d | ||
|
|
a309ff8b42 | ||
|
|
bfe8cc55a7 | ||
|
|
4f41a90a1f |
@@ -1,6 +0,0 @@
|
|||||||
# Ignore list
|
|
||||||
/*
|
|
||||||
|
|
||||||
# Do not ignore these folders:
|
|
||||||
!__tests__/
|
|
||||||
!src/
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
// This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update.
|
|
||||||
module.exports = {
|
|
||||||
extends: [
|
|
||||||
'eslint:recommended',
|
|
||||||
'plugin:@typescript-eslint/recommended',
|
|
||||||
'plugin:eslint-plugin-jest/recommended',
|
|
||||||
'eslint-config-prettier'
|
|
||||||
],
|
|
||||||
parser: '@typescript-eslint/parser',
|
|
||||||
plugins: ['@typescript-eslint', 'eslint-plugin-node', 'eslint-plugin-jest'],
|
|
||||||
rules: {
|
|
||||||
'@typescript-eslint/no-require-imports': 'error',
|
|
||||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
|
||||||
'@typescript-eslint/no-explicit-any': 'off',
|
|
||||||
'@typescript-eslint/no-empty-function': 'off',
|
|
||||||
'@typescript-eslint/ban-ts-comment': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
'ts-ignore': 'allow-with-description'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'no-console': 'error',
|
|
||||||
'yoda': 'error',
|
|
||||||
'prefer-const': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
destructuring: 'all'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
'no-control-regex': 'off',
|
|
||||||
'no-constant-condition': ['error', {checkLoops: false}],
|
|
||||||
'node/no-extraneous-import': 'error'
|
|
||||||
},
|
|
||||||
overrides: [
|
|
||||||
{
|
|
||||||
files: ['**/*{test,spec}.ts'],
|
|
||||||
rules: {
|
|
||||||
'@typescript-eslint/no-unused-vars': 'off',
|
|
||||||
'jest/no-standalone-expect': 'off',
|
|
||||||
'jest/no-conditional-expect': 'off',
|
|
||||||
'no-console': 'off',
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
env: {
|
|
||||||
node: true,
|
|
||||||
es6: true,
|
|
||||||
'jest/globals': true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -23,17 +23,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -50,17 +53,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -68,9 +74,19 @@ jobs:
|
|||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
cache: 'pipenv'
|
cache: 'pipenv'
|
||||||
- name: Install pipenv
|
- name: Install pipenv
|
||||||
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
|
run: python -m pip install --upgrade pip pipenv
|
||||||
- name: Install dependencies
|
- name: Install dependencies on Linux/macOS
|
||||||
run: pipenv install requests
|
if: runner.os != 'Windows'
|
||||||
|
run: |
|
||||||
|
export PIPENV_PYTHON=$(which python)
|
||||||
|
pipenv install requests
|
||||||
|
- name: Install dependencies on Windows
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: |
|
||||||
|
# Remove existing virtualenv if any
|
||||||
|
python -m pipenv --rm || echo "No existing env"
|
||||||
|
# Create fresh env using current Python
|
||||||
|
python -m pipenv install --python $(python -c "import sys; print(sys.executable)") requests
|
||||||
|
|
||||||
python-poetry-dependencies-caching:
|
python-poetry-dependencies-caching:
|
||||||
name: Test poetry (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
name: Test poetry (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
||||||
@@ -80,17 +96,17 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
run: pipx install poetry
|
run: pipx install poetry
|
||||||
- name: Init pyproject.toml
|
- name: Init pyproject.toml
|
||||||
@@ -112,17 +128,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -140,17 +159,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -159,9 +181,19 @@ jobs:
|
|||||||
cache: 'pipenv'
|
cache: 'pipenv'
|
||||||
cache-dependency-path: '**/pipenv-requirements.txt'
|
cache-dependency-path: '**/pipenv-requirements.txt'
|
||||||
- name: Install pipenv
|
- name: Install pipenv
|
||||||
run: curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python
|
run: python -m pip install --upgrade pip pipenv
|
||||||
- name: Install dependencies
|
- name: Install dependencies on Linux/macOS
|
||||||
run: pipenv install requests
|
if: runner.os != 'Windows'
|
||||||
|
run: |
|
||||||
|
export PIPENV_PYTHON=$(which python)
|
||||||
|
pipenv install requests
|
||||||
|
- name: Install dependencies on Windows
|
||||||
|
if: runner.os == 'Windows'
|
||||||
|
run: |
|
||||||
|
# Remove existing virtualenv if any
|
||||||
|
python -m pipenv --rm || echo "No existing env"
|
||||||
|
# Create fresh env using current Python
|
||||||
|
python -m pipenv install --python $(python -c "import sys; print(sys.executable)") requests
|
||||||
|
|
||||||
python-pip-dependencies-caching-with-pip-version:
|
python-pip-dependencies-caching-with-pip-version:
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
||||||
@@ -171,17 +203,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -199,17 +234,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -219,56 +257,3 @@ jobs:
|
|||||||
pip-version: '25.0.1'
|
pip-version: '25.0.1'
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pip install numpy pandas requests
|
run: pip install numpy pandas requests
|
||||||
|
|
||||||
python-pip-dependencies-caching-with-pip-install:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v5
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
pip-install: numpy pandas requests
|
|
||||||
|
|
||||||
python-pip-dependencies-caching-path-with-pip-install:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
python-version: [3.13.0t, 3.13.1t, 3.13.2t]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v5
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
cache-dependency-path: __tests__/data/requirements.txt
|
|
||||||
pip-install: numpy pandas requests
|
|
||||||
|
|||||||
+73
-137
@@ -23,33 +23,26 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
python-version:
|
python-version:
|
||||||
[
|
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||||
'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'
|
|
||||||
]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: macos-latest
|
- os: windows-11-arm
|
||||||
python-version: pypy-3.9-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
|
- os: windows-11-arm
|
||||||
|
python-version: '3.10'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -66,29 +59,24 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
python-version:
|
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||||
['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: ubuntu-22.04-arm
|
- os: windows-11-arm
|
||||||
python-version: pypy-3.10-v7.x
|
|
||||||
- os: ubuntu-22.04-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: ubuntu-22.04-arm
|
|
||||||
python-version: pypy-3.10-v7.x
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -123,29 +111,30 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
python-version:
|
python-version:
|
||||||
[
|
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||||
'3.9',
|
exclude:
|
||||||
'pypy-3.9-v7.x',
|
- os: windows-latest
|
||||||
'3.10',
|
python-version: pypy-3.11-v7.x
|
||||||
'pypy-3.10-v7.x',
|
- os: ubuntu-22.04
|
||||||
'3.11',
|
python-version: pypy-3.11-v7.x
|
||||||
'pypy-3.11-v7.x',
|
- os: windows-11-arm
|
||||||
'3.12',
|
python-version: pypy-3.11-v7.x
|
||||||
'3.13'
|
- os: windows-11-arm
|
||||||
]
|
python-version: '3.10'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
run: pipx install poetry
|
run: |
|
||||||
|
pipx install poetry
|
||||||
- name: Init pyproject.toml
|
- name: Init pyproject.toml
|
||||||
run: mv ./__tests__/data/pyproject.toml .
|
run: mv ./__tests__/data/pyproject.toml .
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
@@ -153,6 +142,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
cache: 'poetry'
|
cache: 'poetry'
|
||||||
|
- name: Bootstrap packaging
|
||||||
|
run: |
|
||||||
|
python -m ensurepip --upgrade
|
||||||
|
python -m pip install --upgrade pip setuptools wheel packaging
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: poetry install --no-root
|
run: poetry install --no-root
|
||||||
|
|
||||||
@@ -164,32 +157,25 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
python-version:
|
python-version:
|
||||||
[
|
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||||
'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'
|
|
||||||
]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: macos-latest
|
- os: windows-11-arm
|
||||||
python-version: pypy-3.9-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
|
- os: windows-11-arm
|
||||||
|
python-version: '3.10'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -207,27 +193,24 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
python-version:
|
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
||||||
['3.10', 'pypy-3.10-v7.x', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13']
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
- os: ubuntu-22.04-arm
|
- os: windows-11-arm
|
||||||
python-version: pypy-3.10-v7.x
|
|
||||||
- os: ubuntu-22.04-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: pypy-3.11-v7.x
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -263,17 +246,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -291,17 +277,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
|
ubuntu-22.04,
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
windows-latest,
|
||||||
macos-latest,
|
windows-11-arm,
|
||||||
macos-15-intel
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -311,56 +300,3 @@ jobs:
|
|||||||
pip-version: '25.0.1'
|
pip-version: '25.0.1'
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pip install numpy pandas requests
|
run: pip install numpy pandas requests
|
||||||
|
|
||||||
python-pip-dependencies-caching-with-pip-install:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v5
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
pip-install: numpy pandas requests
|
|
||||||
|
|
||||||
python-pip-dependencies-caching-path-with-pip-install:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v5
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
cache-dependency-path: __tests__/data/requirements.txt
|
|
||||||
pip-install: numpy pandas requests
|
|
||||||
|
|||||||
@@ -19,30 +19,25 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
operating-system:
|
operating-system:
|
||||||
[
|
[
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm,
|
ubuntu-24.04-arm,
|
||||||
macos-latest,
|
windows-latest,
|
||||||
macos-15-intel
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- 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
|
- name: Run with setup-python 3.10.11
|
||||||
|
if: matrix.operating-system != 'windows-11-arm'
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.10.11
|
python-version: 3.10.11
|
||||||
- name: Verify 3.10.11
|
- name: Verify 3.10.11
|
||||||
|
if: matrix.operating-system != 'windows-11-arm'
|
||||||
run: python __tests__/verify-python.py 3.10.11
|
run: python __tests__/verify-python.py 3.10.11
|
||||||
|
|
||||||
- name: Run with setup-python 3.11.9
|
- name: Run with setup-python 3.11.9
|
||||||
@@ -52,43 +47,58 @@ jobs:
|
|||||||
- name: Verify 3.11.9
|
- name: Verify 3.11.9
|
||||||
run: python __tests__/verify-python.py 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: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.12.7
|
python-version: 3.12.10
|
||||||
- name: Verify 3.12.7
|
- name: Verify 3.12.10
|
||||||
run: python __tests__/verify-python.py 3.12.7
|
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: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.13.0
|
python-version: 3.13.14
|
||||||
- name: Verify 3.13.0
|
- name: Verify 3.13.14
|
||||||
run: python __tests__/verify-python.py 3.13.0
|
run: python __tests__/verify-python.py 3.13.14
|
||||||
|
|
||||||
- name: Run with setup-python 3.13
|
- name: Run with setup-python 3.14.6
|
||||||
id: cp313
|
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: 3.14.6
|
||||||
- name: Verify 3.13
|
- 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'
|
||||||
|
run: python -m pip install pipx
|
||||||
|
|
||||||
|
- 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.14
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: '==3.14'
|
||||||
|
- name: Verify ==3.14
|
||||||
|
run: python __tests__/verify-python.py 3.14
|
||||||
|
|
||||||
|
- name: Run with setup-python <3.14
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: '<3.14'
|
||||||
|
- name: Verify <3.14
|
||||||
run: python __tests__/verify-python.py 3.13
|
run: python __tests__/verify-python.py 3.13
|
||||||
- name: Run python-path sample 3.13
|
|
||||||
run: pipx run --python '${{ steps.cp313.outputs.python-path }}' nox --version
|
|
||||||
|
|
||||||
- name: Run with setup-python ==3.13
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: '==3.13'
|
|
||||||
- name: Verify ==3.13
|
|
||||||
run: python __tests__/verify-python.py 3.13
|
|
||||||
|
|
||||||
- name: Run with setup-python <3.13
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: '<3.13'
|
|
||||||
- name: Verify <3.13
|
|
||||||
run: python __tests__/verify-python.py 3.12
|
|
||||||
|
|
||||||
- name: Test Raw Endpoint Access
|
- name: Test Raw Endpoint Access
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checking out
|
- name: Checking out
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Publish
|
- name: Publish
|
||||||
id: publish
|
id: publish
|
||||||
uses: actions/publish-immutable-action@v0.0.4
|
uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4
|
||||||
|
|||||||
@@ -28,14 +28,13 @@ jobs:
|
|||||||
macos-15-intel
|
macos-15-intel
|
||||||
]
|
]
|
||||||
graalpy:
|
graalpy:
|
||||||
- 'graalpy-22.3'
|
|
||||||
- 'graalpy-23.0'
|
|
||||||
- 'graalpy-23.1'
|
- 'graalpy-23.1'
|
||||||
- 'graalpy-24.1'
|
- 'graalpy-24.2'
|
||||||
|
- 'graalpy-25.0'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.graalpy }}
|
- name: setup-python ${{ matrix.graalpy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -82,11 +81,11 @@ jobs:
|
|||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
macos-15-intel
|
||||||
]
|
]
|
||||||
graalpy: ['graalpy22.3', 'graalpy23.0', 'graalpy23.1', 'graalpy24.1']
|
graalpy: ['graalpy23.1', 'graalpy24.2', 'graalpy25.0']
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.graalpy }}
|
- name: setup-python ${{ matrix.graalpy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -108,12 +107,12 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
|
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup GraalPy and check latest
|
- name: Setup GraalPy and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
id: graalpy
|
id: graalpy
|
||||||
with:
|
with:
|
||||||
python-version: 'graalpy-24.x'
|
python-version: 'graalpy-25.x'
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: GraalPy and Python version
|
- name: GraalPy and Python version
|
||||||
run: python --version
|
run: python --version
|
||||||
|
|||||||
@@ -22,31 +22,24 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
pypy:
|
pypy:
|
||||||
- 'pypy-2.7'
|
- 'pypy-3.11'
|
||||||
- 'pypy-3.10'
|
- 'pypy-3.11-v7.3.23'
|
||||||
- 'pypy3.9'
|
- 'pypy-3.11-v7.3.x'
|
||||||
- 'pypy-2.7-v7.3.17'
|
- 'pypy-3.11-v7.x'
|
||||||
- 'pypy-3.10-v7.3.17'
|
- 'pypy-3.11-nightly'
|
||||||
- 'pypy-3.10-v7.3.16'
|
- 'pypy3.11-v7.3.23'
|
||||||
- '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'
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
- name: setup-python ${{ matrix.pypy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -85,20 +78,19 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
- macos-15-intel
|
[
|
||||||
- macos-14
|
ubuntu-22.04,
|
||||||
- macos-15
|
ubuntu-latest,
|
||||||
- windows-2022
|
ubuntu-24.04-arm,
|
||||||
- windows-2025
|
windows-latest,
|
||||||
- ubuntu-22.04
|
macos-15-intel,
|
||||||
- ubuntu-24.04
|
macos-latest
|
||||||
- ubuntu-22.04-arm
|
]
|
||||||
- ubuntu-24.04-arm
|
pypy: ['pypy-3.11']
|
||||||
pypy: ['pypy-2.7', 'pypy-3.10', 'pypy-3.11']
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
- name: setup-python ${{ matrix.pypy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -138,19 +130,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
- name: setup-python ${{ matrix.pypy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -172,16 +163,15 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup PyPy and check latest
|
- name: Setup PyPy and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -214,23 +204,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup PyPy and check latest
|
- name: Setup PyPy and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: |
|
python-version: |
|
||||||
pypy-3.11-v7.3.x
|
pypy-3.11-v7.3.x
|
||||||
pypy-3.10-v7.3.x
|
pypy-3.10-v7.3.x
|
||||||
pypy3.9
|
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: PyPy and Python version
|
- name: PyPy and Python version
|
||||||
run: python --version
|
run: python --version
|
||||||
@@ -248,13 +236,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
EXECUTABLE="pypy-3.11-v7.3.x"
|
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 the first '-' in "pypy-X.Y" -> "pypyX.Y" to match executable name
|
||||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffix
|
||||||
${EXECUTABLE} --version
|
${EXECUTABLE} --version
|
||||||
shell: bash
|
shell: bash
|
||||||
- name: Assert expected binaries (or symlinks) are present
|
- name: Assert expected binaries (or symlinks) are present
|
||||||
run: |
|
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/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
|
${EXECUTABLE} --version
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@@ -22,18 +22,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -59,18 +59,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -99,18 +99,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -137,18 +137,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -178,18 +178,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -219,18 +219,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-tool-versions-file ${{ matrix.python }}
|
- name: build-tool-versions-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -250,18 +250,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -290,18 +290,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -323,30 +323,30 @@ jobs:
|
|||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-pre-release-version-from-manifest:
|
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 }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14.0-alpha.6
|
- name: setup-python 3.15.0-beta.3
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14.0-alpha.6'
|
python-version: '3.15.0-beta.3'
|
||||||
freethreaded: true
|
freethreaded: true
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
@@ -360,67 +360,67 @@ jobs:
|
|||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-dev-version:
|
setup-dev-version:
|
||||||
name: Setup 3.14t-dev ${{ matrix.os }}
|
name: Setup 3.15t-dev ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14t-dev
|
- name: setup-python 3.15t-dev
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14t-dev'
|
python-version: '3.15t-dev'
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Validate version
|
- 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
|
shell: bash
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-prerelease-version:
|
setup-prerelease-version:
|
||||||
name: Setup 3.14t ${{ matrix.os }}
|
name: Setup 3.15t ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14t
|
- name: setup-python 3.15t
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14t'
|
python-version: '3.15t'
|
||||||
allow-prereleases: true
|
allow-prereleases: true
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
@@ -428,7 +428,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Validate version
|
- 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
|
shell: bash
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
@@ -442,18 +442,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -475,17 +475,17 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -502,24 +502,24 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python and check latest
|
- name: Setup multiple Python versions
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: |
|
python-version: |
|
||||||
3.13.1t
|
3.13.14t
|
||||||
3.13.2t
|
3.14.6t
|
||||||
3.14t-dev
|
3.15t-dev
|
||||||
- name: Verify Python version
|
- name: Verify Python version
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
||||||
|
|
||||||
@@ -531,18 +531,18 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
|
|||||||
+167
-111
@@ -22,18 +22,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -58,6 +61,32 @@ jobs:
|
|||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
|
setup-versions-via-mirror-input:
|
||||||
|
name: 'Setup via explicit mirror input: ${{ matrix.os }}'
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
|
# The refs/heads/ form serves the same manifest as the default mirror and
|
||||||
|
# exercises the refs/heads/{branch} -> {branch} parsing on the API path.
|
||||||
|
# check-latest forces a manifest fetch even though 3.12 is preinstalled,
|
||||||
|
# so the job actually contacts the mirror instead of short-circuiting on
|
||||||
|
# the tool cache.
|
||||||
|
- name: setup-python with explicit mirror
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: 3.12
|
||||||
|
check-latest: true
|
||||||
|
mirror: https://raw.githubusercontent.com/actions/python-versions/refs/heads/main
|
||||||
|
|
||||||
|
- name: Run simple code
|
||||||
|
run: python -c 'import sys; print(sys.version)'
|
||||||
|
|
||||||
setup-versions-from-file:
|
setup-versions-from-file:
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} version file
|
name: Setup ${{ matrix.python }} ${{ matrix.os }} version file
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
@@ -66,18 +95,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -113,18 +145,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -158,18 +193,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -208,18 +246,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -258,21 +299,25 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
exclude:
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
python: graalpy-24.1.2
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-tool-versions-file ${{ matrix.python }}
|
- name: build-tool-versions-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -292,18 +337,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -342,18 +390,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -385,30 +436,30 @@ jobs:
|
|||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-pre-release-version-from-manifest:
|
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 }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
ubuntu-24.04-arm
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14.0-alpha.6
|
- name: setup-python 3.15.0-beta.3
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14.0-alpha.6'
|
python-version: '3.15.0-beta.3'
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||||
@@ -417,8 +468,8 @@ jobs:
|
|||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: |
|
run: |
|
||||||
$pythonVersion = (python --version)
|
$pythonVersion = (python --version)
|
||||||
if ("Python 3.14.0a6" -ne "$pythonVersion"){
|
if ("Python 3.15.0b3" -ne "$pythonVersion"){
|
||||||
Write-Host "The current version is $pythonVersion; expected version is 3.14.0a6"
|
Write-Host "The current version is $pythonVersion; expected version is 3.15.0b3"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
@@ -428,67 +479,67 @@ jobs:
|
|||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-dev-version:
|
setup-dev-version:
|
||||||
name: Setup 3.14-dev ${{ matrix.os }}
|
name: Setup 3.15-dev ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14-dev
|
- name: setup-python 3.15-dev
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14-dev'
|
python-version: '3.15-dev'
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Validate version
|
- 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
|
shell: bash
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
setup-prerelease-version:
|
setup-prerelease-version:
|
||||||
name: Setup 3.14 ${{ matrix.os }}
|
name: Setup 3.15 ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python 3.14
|
- name: setup-python 3.15
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14'
|
python-version: '3.15'
|
||||||
allow-prereleases: true
|
allow-prereleases: true
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
@@ -496,7 +547,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Validate version
|
- 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
|
shell: bash
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
@@ -510,18 +561,21 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -543,17 +597,20 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
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:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -576,31 +633,30 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
[
|
[
|
||||||
macos-latest,
|
|
||||||
windows-latest,
|
|
||||||
ubuntu-22.04,
|
ubuntu-22.04,
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
ubuntu-latest,
|
||||||
macos-15-intel
|
ubuntu-24.04-arm,
|
||||||
|
windows-latest,
|
||||||
|
windows-11-arm,
|
||||||
|
macos-15-intel,
|
||||||
|
macos-latest
|
||||||
]
|
]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: |
|
python-version: |
|
||||||
3.9
|
|
||||||
3.10
|
|
||||||
3.11
|
3.11
|
||||||
3.12
|
3.12
|
||||||
3.13
|
3.13
|
||||||
|
3.14
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: |
|
run: |
|
||||||
$pythonVersion = (python --version)
|
$pythonVersion = (python --version)
|
||||||
if ("$pythonVersion" -NotMatch "3.13"){
|
if ("$pythonVersion" -NotMatch "3.14"){
|
||||||
Write-Host "The current version is $pythonVersion; expected version is 3.13"
|
Write-Host "The current version is $pythonVersion; expected version is 3.14"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
|
|||||||
+5
-1
@@ -10,6 +10,10 @@ allowed:
|
|||||||
- cc0-1.0
|
- cc0-1.0
|
||||||
- unlicense
|
- unlicense
|
||||||
- 0bsd
|
- 0bsd
|
||||||
|
- blueoak-1.0.0
|
||||||
|
|
||||||
reviewed:
|
reviewed:
|
||||||
npm:
|
npm:
|
||||||
|
- "@actions/http-client"
|
||||||
|
- "balanced-match"
|
||||||
|
- "brace-expansion"
|
||||||
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
@@ -1,11 +0,0 @@
|
|||||||
// This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update.
|
|
||||||
module.exports = {
|
|
||||||
printWidth: 80,
|
|
||||||
tabWidth: 2,
|
|
||||||
useTabs: false,
|
|
||||||
semi: true,
|
|
||||||
singleQuote: true,
|
|
||||||
trailingComma: 'none',
|
|
||||||
bracketSpacing: false,
|
|
||||||
arrowParens: 'avoid'
|
|
||||||
};
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"printWidth": 80,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"useTabs": false,
|
||||||
|
"semi": true,
|
||||||
|
"singleQuote": true,
|
||||||
|
"trailingComma": "none",
|
||||||
|
"bracketSpacing": false,
|
||||||
|
"arrowParens": "avoid"
|
||||||
|
}
|
||||||
@@ -11,6 +11,10 @@ This action provides the following functionality for GitHub Actions users:
|
|||||||
- Optionally caching dependencies for pip, pipenv and poetry
|
- Optionally caching dependencies for pip, pipenv and poetry
|
||||||
- Registering problem matchers for error output
|
- Registering problem matchers for error output
|
||||||
|
|
||||||
|
## What's new in V7
|
||||||
|
|
||||||
|
- Migrated action internals to ESM for compatibility with latest `@actions/*` packages. No changes to action inputs, outputs, or behavior.
|
||||||
|
|
||||||
## Breaking changes in V6
|
## Breaking changes in V6
|
||||||
|
|
||||||
- Upgraded action from node20 to node24
|
- Upgraded action from node20 to node24
|
||||||
@@ -25,8 +29,8 @@ See [action.yml](action.yml)
|
|||||||
**Python**
|
**Python**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: actions/setup-python@v6
|
- uses: actions/setup-python@v7
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.13'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
@@ -35,8 +39,8 @@ steps:
|
|||||||
**PyPy**
|
**PyPy**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: actions/setup-python@v6
|
- uses: actions/setup-python@v7
|
||||||
with:
|
with:
|
||||||
python-version: 'pypy3.10'
|
python-version: 'pypy3.10'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
@@ -45,8 +49,8 @@ steps:
|
|||||||
**GraalPy**
|
**GraalPy**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: actions/setup-python@v6
|
- uses: actions/setup-python@v7
|
||||||
with:
|
with:
|
||||||
python-version: 'graalpy-24.0'
|
python-version: 'graalpy-24.0'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
@@ -55,8 +59,8 @@ steps:
|
|||||||
**Free threaded Python**
|
**Free threaded Python**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: actions/setup-python@v6
|
- uses: actions/setup-python@v7
|
||||||
with:
|
with:
|
||||||
python-version: '3.13t'
|
python-version: '3.13t'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
@@ -90,8 +94,8 @@ The action defaults to searching for a dependency file (`requirements.txt` or `p
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v5
|
- uses: actions/checkout@v7
|
||||||
- uses: actions/setup-python@v6
|
- uses: actions/setup-python@v7
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.13'
|
||||||
cache: 'pip' # caching pip dependencies
|
cache: 'pip' # caching pip dependencies
|
||||||
@@ -118,7 +122,6 @@ See examples of using `cache` and `cache-dependency-path` for `pipenv` and `poet
|
|||||||
- [Using `setup-python` on GHES](docs/advanced-usage.md#using-setup-python-on-ghes)
|
- [Using `setup-python` on GHES](docs/advanced-usage.md#using-setup-python-on-ghes)
|
||||||
- [Allow pre-releases](docs/advanced-usage.md#allow-pre-releases)
|
- [Allow pre-releases](docs/advanced-usage.md#allow-pre-releases)
|
||||||
- [Using the pip-version input](docs/advanced-usage.md#using-the-pip-version-input)
|
- [Using the pip-version input](docs/advanced-usage.md#using-the-pip-version-input)
|
||||||
- [Using the pip-install input](docs/advanced-usage.md#using-the-pip-install-input)
|
|
||||||
|
|
||||||
## Recommended permissions
|
## Recommended permissions
|
||||||
|
|
||||||
|
|||||||
+115
-63
@@ -1,10 +1,62 @@
|
|||||||
|
import {jest, describe, it, expect, beforeEach, afterEach} from '@jest/globals';
|
||||||
|
import {fileURLToPath} from 'url';
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as core from '@actions/core';
|
|
||||||
import * as cache from '@actions/cache';
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||||
import * as exec from '@actions/exec';
|
|
||||||
import * as io from '@actions/io';
|
// Mock @actions modules before importing anything that depends on them
|
||||||
import {getCacheDistributor} from '../src/cache-distributions/cache-factory';
|
jest.unstable_mockModule('@actions/core', () => ({
|
||||||
import {State} from '../src/cache-distributions/cache-distributor';
|
info: jest.fn(),
|
||||||
|
warning: jest.fn(),
|
||||||
|
debug: jest.fn(),
|
||||||
|
error: jest.fn(),
|
||||||
|
notice: jest.fn(),
|
||||||
|
setFailed: jest.fn(),
|
||||||
|
setOutput: jest.fn(),
|
||||||
|
getInput: jest.fn(),
|
||||||
|
getBooleanInput: jest.fn(),
|
||||||
|
getMultilineInput: jest.fn(),
|
||||||
|
addPath: jest.fn(),
|
||||||
|
exportVariable: jest.fn(),
|
||||||
|
saveState: jest.fn(),
|
||||||
|
getState: jest.fn(),
|
||||||
|
setSecret: jest.fn(),
|
||||||
|
isDebug: jest.fn(() => false),
|
||||||
|
startGroup: jest.fn(),
|
||||||
|
endGroup: jest.fn(),
|
||||||
|
group: jest.fn((_name: string, fn: () => Promise<unknown>) => fn()),
|
||||||
|
toPlatformPath: jest.fn((p: string) => p),
|
||||||
|
toWin32Path: jest.fn((p: string) => p),
|
||||||
|
toPosixPath: jest.fn((p: string) => p)
|
||||||
|
}));
|
||||||
|
|
||||||
|
jest.unstable_mockModule('@actions/cache', () => ({
|
||||||
|
saveCache: jest.fn(),
|
||||||
|
restoreCache: jest.fn(),
|
||||||
|
isFeatureAvailable: jest.fn()
|
||||||
|
}));
|
||||||
|
|
||||||
|
jest.unstable_mockModule('@actions/exec', () => ({
|
||||||
|
exec: jest.fn(),
|
||||||
|
getExecOutput: jest.fn()
|
||||||
|
}));
|
||||||
|
|
||||||
|
jest.unstable_mockModule('@actions/io', () => ({
|
||||||
|
which: jest.fn(),
|
||||||
|
mkdirP: jest.fn(),
|
||||||
|
rmRF: jest.fn(),
|
||||||
|
mv: jest.fn(),
|
||||||
|
cp: jest.fn()
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Dynamic imports after mocking
|
||||||
|
const core = await import('@actions/core');
|
||||||
|
const cache = await import('@actions/cache');
|
||||||
|
const exec = await import('@actions/exec');
|
||||||
|
const io = await import('@actions/io');
|
||||||
|
const {getCacheDistributor} =
|
||||||
|
await import('../src/cache-distributions/cache-factory.js');
|
||||||
|
const {State} = await import('../src/cache-distributions/cache-distributor.js');
|
||||||
|
|
||||||
describe('restore-cache', () => {
|
describe('restore-cache', () => {
|
||||||
const pipFileLockHash =
|
const pipFileLockHash =
|
||||||
@@ -24,43 +76,38 @@ virtualenvs.in-project = true
|
|||||||
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/pypoetry/virtualenvs
|
virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/pypoetry/virtualenvs
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// core spy
|
let infoSpy: jest.Mock;
|
||||||
let infoSpy: jest.SpyInstance;
|
let warningSpy: jest.Mock;
|
||||||
let warningSpy: jest.SpyInstance;
|
let debugSpy: jest.Mock;
|
||||||
let debugSpy: jest.SpyInstance;
|
let saveStateSpy: jest.Mock;
|
||||||
let saveStateSpy: jest.SpyInstance;
|
let getStateSpy: jest.Mock;
|
||||||
let getStateSpy: jest.SpyInstance;
|
let setOutputSpy: jest.Mock;
|
||||||
let setOutputSpy: jest.SpyInstance;
|
let restoreCacheSpy: jest.Mock;
|
||||||
|
let getExecOutputSpy: jest.Mock;
|
||||||
// cache spy
|
let whichSpy: jest.Mock;
|
||||||
let restoreCacheSpy: jest.SpyInstance;
|
|
||||||
|
|
||||||
// exec spy
|
|
||||||
let getExecOutputSpy: jest.SpyInstance;
|
|
||||||
|
|
||||||
// io spy
|
|
||||||
let whichSpy: jest.SpyInstance;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
||||||
|
|
||||||
infoSpy = jest.spyOn(core, 'info');
|
infoSpy = core.info as jest.Mock;
|
||||||
infoSpy.mockImplementation(input => undefined);
|
infoSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
warningSpy = jest.spyOn(core, 'warning');
|
warningSpy = core.warning as jest.Mock;
|
||||||
warningSpy.mockImplementation(input => undefined);
|
warningSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
debugSpy = jest.spyOn(core, 'debug');
|
debugSpy = core.debug as jest.Mock;
|
||||||
debugSpy.mockImplementation(input => undefined);
|
debugSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
saveStateSpy = jest.spyOn(core, 'saveState');
|
saveStateSpy = core.saveState as jest.Mock;
|
||||||
saveStateSpy.mockImplementation(input => undefined);
|
saveStateSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
getStateSpy = jest.spyOn(core, 'getState');
|
getStateSpy = core.getState as jest.Mock;
|
||||||
getStateSpy.mockImplementation(input => undefined);
|
getStateSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
getExecOutputSpy = exec.getExecOutput as jest.Mock;
|
||||||
getExecOutputSpy.mockImplementation((input: string) => {
|
(
|
||||||
|
getExecOutputSpy as jest.Mock<typeof exec.getExecOutput>
|
||||||
|
).mockImplementation(async (input: string) => {
|
||||||
if (input.includes('pip')) {
|
if (input.includes('pip')) {
|
||||||
return {stdout: 'pip', stderr: '', exitCode: 0};
|
return {stdout: 'pip', stderr: '', exitCode: 0};
|
||||||
}
|
}
|
||||||
@@ -74,17 +121,19 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
||||||
});
|
});
|
||||||
|
|
||||||
setOutputSpy = jest.spyOn(core, 'setOutput');
|
setOutputSpy = core.setOutput as jest.Mock;
|
||||||
setOutputSpy.mockImplementation(input => undefined);
|
setOutputSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
restoreCacheSpy = jest.spyOn(cache, 'restoreCache');
|
restoreCacheSpy = cache.restoreCache as jest.Mock;
|
||||||
restoreCacheSpy.mockImplementation(
|
(
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
||||||
return primaryKey;
|
).mockImplementation(
|
||||||
|
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
||||||
|
return Promise.resolve(primaryKey);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
whichSpy = jest.spyOn(io, 'which');
|
whichSpy = io.which as jest.Mock;
|
||||||
whichSpy.mockImplementation(() => '/path/to/python');
|
whichSpy.mockImplementation(() => '/path/to/python');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -163,9 +212,13 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
fileHash,
|
fileHash,
|
||||||
cachePaths
|
cachePaths
|
||||||
) => {
|
) => {
|
||||||
restoreCacheSpy.mockImplementation(
|
(
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
||||||
return primaryKey.includes(fileHash) ? primaryKey : '';
|
).mockImplementation(
|
||||||
|
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
||||||
|
return Promise.resolve(
|
||||||
|
primaryKey.includes(fileHash) ? primaryKey : ''
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -184,25 +237,18 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const restoredKeys = restoreCacheSpy.mock.results.map(
|
const restoredKeys = await Promise.all(
|
||||||
result => result.value
|
restoreCacheSpy.mock.results.map(result => result.value)
|
||||||
);
|
);
|
||||||
|
|
||||||
restoredKeys.forEach(restoredKey => {
|
restoredKeys.forEach(restoredKey => {
|
||||||
if (restoredKey) {
|
if (restoredKey) {
|
||||||
if (process.platform === 'linux' && packageManager === 'pip') {
|
const osSegment =
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
process.platform === 'linux' ? '-20.04-Ubuntu' : '';
|
||||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}-20.04-Ubuntu-python-${pythonVersion}-${packageManager}-${fileHash}`
|
const versionSuffix = packageManager === 'poetry' ? '-v2' : '';
|
||||||
);
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
} else if (packageManager === 'poetry') {
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${pythonVersion}-${packageManager}${versionSuffix}-${fileHash}`
|
||||||
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 {
|
} else {
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
`${packageManager} cache is not found`
|
`${packageManager} cache is not found`
|
||||||
@@ -230,7 +276,9 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
await expect(cacheDistributor.restoreCache()).rejects.toThrow(
|
await expect(cacheDistributor.restoreCache()).rejects.toThrow(
|
||||||
`No file in ${process.cwd()} matched to [${cacheDependencyPath
|
`No file in ${process.cwd()} matched to [${cacheDependencyPath
|
||||||
.split('\n')
|
.split('\n')
|
||||||
.join(',')}], make sure you have checked out the target repository`
|
.join(
|
||||||
|
','
|
||||||
|
)}] for ${packageManager}. Make sure you have checked out the target repository, or consider removing the cache step if there are no dependencies to cache.`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -291,9 +339,13 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
])(
|
])(
|
||||||
'restored dependencies for %s by primaryKey',
|
'restored dependencies for %s by primaryKey',
|
||||||
async (packageManager, pythonVersion, dependencyFile, fileHash) => {
|
async (packageManager, pythonVersion, dependencyFile, fileHash) => {
|
||||||
restoreCacheSpy.mockImplementation(
|
(
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
||||||
return primaryKey !== fileHash && restoreKey ? pipFileLockHash : '';
|
).mockImplementation(
|
||||||
|
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
||||||
|
return Promise.resolve(
|
||||||
|
primaryKey !== fileHash && restoreKey ? pipFileLockHash : ''
|
||||||
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const cacheDistributor = getCacheDistributor(
|
const cacheDistributor = getCacheDistributor(
|
||||||
|
|||||||
+143
-79
@@ -1,8 +1,61 @@
|
|||||||
import * as core from '@actions/core';
|
import {jest, describe, it, expect, beforeEach, afterEach} from '@jest/globals';
|
||||||
import * as cache from '@actions/cache';
|
import {fileURLToPath} from 'url';
|
||||||
import * as exec from '@actions/exec';
|
import path from 'path';
|
||||||
import {run} from '../src/cache-save';
|
|
||||||
import {State} from '../src/cache-distributions/cache-distributor';
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||||
|
|
||||||
|
// Mock @actions modules before importing anything that depends on them
|
||||||
|
jest.unstable_mockModule('@actions/core', () => ({
|
||||||
|
info: jest.fn(),
|
||||||
|
warning: jest.fn(),
|
||||||
|
debug: jest.fn(),
|
||||||
|
error: jest.fn(),
|
||||||
|
notice: jest.fn(),
|
||||||
|
setFailed: jest.fn(),
|
||||||
|
setOutput: jest.fn(),
|
||||||
|
getInput: jest.fn(),
|
||||||
|
getBooleanInput: jest.fn(),
|
||||||
|
getMultilineInput: jest.fn(),
|
||||||
|
addPath: jest.fn(),
|
||||||
|
exportVariable: jest.fn(),
|
||||||
|
saveState: jest.fn(),
|
||||||
|
getState: jest.fn(),
|
||||||
|
setSecret: jest.fn(),
|
||||||
|
isDebug: jest.fn(() => false),
|
||||||
|
startGroup: jest.fn(),
|
||||||
|
endGroup: jest.fn(),
|
||||||
|
group: jest.fn((_name: string, fn: () => Promise<unknown>) => fn()),
|
||||||
|
toPlatformPath: jest.fn((p: string) => p),
|
||||||
|
toWin32Path: jest.fn((p: string) => p),
|
||||||
|
toPosixPath: jest.fn((p: string) => p)
|
||||||
|
}));
|
||||||
|
|
||||||
|
class MockValidationError extends Error {
|
||||||
|
constructor(message: string) {
|
||||||
|
super(message);
|
||||||
|
this.name = 'ValidationError';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jest.unstable_mockModule('@actions/cache', () => ({
|
||||||
|
saveCache: jest.fn(),
|
||||||
|
restoreCache: jest.fn(),
|
||||||
|
isFeatureAvailable: jest.fn(),
|
||||||
|
ValidationError: MockValidationError,
|
||||||
|
ReserveCacheError: MockValidationError
|
||||||
|
}));
|
||||||
|
|
||||||
|
jest.unstable_mockModule('@actions/exec', () => ({
|
||||||
|
exec: jest.fn(),
|
||||||
|
getExecOutput: jest.fn()
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Dynamic imports after mocking
|
||||||
|
const core = await import('@actions/core');
|
||||||
|
const cache = await import('@actions/cache');
|
||||||
|
const exec = await import('@actions/exec');
|
||||||
|
const {run} = await import('../src/cache-save.js');
|
||||||
|
const {State} = await import('../src/cache-distributions/cache-distributor.js');
|
||||||
|
|
||||||
describe('run', () => {
|
describe('run', () => {
|
||||||
const pipFileLockHash =
|
const pipFileLockHash =
|
||||||
@@ -14,53 +67,54 @@ describe('run', () => {
|
|||||||
const poetryLockHash =
|
const poetryLockHash =
|
||||||
'571bf984f8d210e6a97f854e479fdd4a2b5af67b5fdac109ec337a0ea16e7836';
|
'571bf984f8d210e6a97f854e479fdd4a2b5af67b5fdac109ec337a0ea16e7836';
|
||||||
|
|
||||||
// core spy
|
let infoSpy: jest.Mock;
|
||||||
let infoSpy: jest.SpyInstance;
|
let warningSpy: jest.Mock;
|
||||||
let warningSpy: jest.SpyInstance;
|
let debugSpy: jest.Mock;
|
||||||
let debugSpy: jest.SpyInstance;
|
let saveStateSpy: jest.Mock;
|
||||||
let saveStateSpy: jest.SpyInstance;
|
let getStateSpy: jest.Mock;
|
||||||
let getStateSpy: jest.SpyInstance;
|
let getInputSpy: jest.Mock;
|
||||||
let getInputSpy: jest.SpyInstance;
|
let setFailedSpy: jest.Mock;
|
||||||
let setFailedSpy: jest.SpyInstance;
|
let saveCacheSpy: jest.Mock;
|
||||||
|
let getExecOutputSpy: jest.Mock;
|
||||||
// cache spy
|
|
||||||
let saveCacheSpy: jest.SpyInstance;
|
|
||||||
|
|
||||||
// exec spy
|
|
||||||
let getExecOutputSpy: jest.SpyInstance;
|
|
||||||
|
|
||||||
let inputs = {} as any;
|
let inputs = {} as any;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
process.env['RUNNER_OS'] = process.env['RUNNER_OS'] ?? 'linux';
|
||||||
|
|
||||||
infoSpy = jest.spyOn(core, 'info');
|
infoSpy = core.info as jest.Mock;
|
||||||
infoSpy.mockImplementation(input => undefined);
|
infoSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
warningSpy = jest.spyOn(core, 'warning');
|
warningSpy = core.warning as jest.Mock;
|
||||||
warningSpy.mockImplementation(input => undefined);
|
warningSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
debugSpy = jest.spyOn(core, 'debug');
|
debugSpy = core.debug as jest.Mock;
|
||||||
debugSpy.mockImplementation(input => undefined);
|
debugSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
saveStateSpy = jest.spyOn(core, 'saveState');
|
saveStateSpy = core.saveState as jest.Mock;
|
||||||
saveStateSpy.mockImplementation(input => undefined);
|
saveStateSpy.mockImplementation(() => undefined);
|
||||||
|
|
||||||
getStateSpy = jest.spyOn(core, 'getState');
|
getStateSpy = core.getState as jest.Mock;
|
||||||
getStateSpy.mockImplementation(input => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (input === State.CACHE_PATHS) {
|
(input: string) => {
|
||||||
return JSON.stringify([__dirname]);
|
if (input === State.CACHE_PATHS) {
|
||||||
|
return JSON.stringify([__dirname]);
|
||||||
|
}
|
||||||
|
return requirementsHash;
|
||||||
}
|
}
|
||||||
return requirementsHash;
|
);
|
||||||
});
|
|
||||||
|
|
||||||
setFailedSpy = jest.spyOn(core, 'setFailed');
|
setFailedSpy = core.setFailed as jest.Mock;
|
||||||
|
|
||||||
getInputSpy = jest.spyOn(core, 'getInput');
|
getInputSpy = core.getInput as jest.Mock;
|
||||||
getInputSpy.mockImplementation(input => inputs[input]);
|
(getInputSpy as jest.Mock<typeof core.getInput>).mockImplementation(
|
||||||
|
(input: string) => inputs[input]
|
||||||
|
);
|
||||||
|
|
||||||
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
getExecOutputSpy = exec.getExecOutput as jest.Mock;
|
||||||
getExecOutputSpy.mockImplementation((input: string) => {
|
(
|
||||||
|
getExecOutputSpy as jest.Mock<typeof exec.getExecOutput>
|
||||||
|
).mockImplementation(async (input: string) => {
|
||||||
if (input.includes('pip')) {
|
if (input.includes('pip')) {
|
||||||
return {stdout: 'pip', stderr: '', exitCode: 0};
|
return {stdout: 'pip', stderr: '', exitCode: 0};
|
||||||
}
|
}
|
||||||
@@ -68,7 +122,7 @@ describe('run', () => {
|
|||||||
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
||||||
});
|
});
|
||||||
|
|
||||||
saveCacheSpy = jest.spyOn(cache, 'saveCache');
|
saveCacheSpy = cache.saveCache as jest.Mock;
|
||||||
saveCacheSpy.mockImplementation(() => undefined);
|
saveCacheSpy.mockImplementation(() => undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -124,15 +178,17 @@ describe('run', () => {
|
|||||||
it('saves cache from pip', async () => {
|
it('saves cache from pip', async () => {
|
||||||
inputs['cache'] = 'pip';
|
inputs['cache'] = 'pip';
|
||||||
inputs['python-version'] = '3.10.0';
|
inputs['python-version'] = '3.10.0';
|
||||||
getStateSpy.mockImplementation((name: string) => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
(name: string) => {
|
||||||
return requirementsHash;
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return requirementsHash;
|
||||||
return JSON.stringify([__dirname]);
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else {
|
return JSON.stringify([__dirname]);
|
||||||
return pipFileLockHash;
|
} else {
|
||||||
|
return pipFileLockHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -151,15 +207,17 @@ describe('run', () => {
|
|||||||
it('saves cache from pipenv', async () => {
|
it('saves cache from pipenv', async () => {
|
||||||
inputs['cache'] = 'pipenv';
|
inputs['cache'] = 'pipenv';
|
||||||
inputs['python-version'] = '3.10.0';
|
inputs['python-version'] = '3.10.0';
|
||||||
getStateSpy.mockImplementation((name: string) => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
(name: string) => {
|
||||||
return pipFileLockHash;
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return pipFileLockHash;
|
||||||
return JSON.stringify([__dirname]);
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else {
|
return JSON.stringify([__dirname]);
|
||||||
return requirementsHash;
|
} else {
|
||||||
|
return requirementsHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -178,15 +236,17 @@ describe('run', () => {
|
|||||||
it('saves cache from poetry', async () => {
|
it('saves cache from poetry', async () => {
|
||||||
inputs['cache'] = 'poetry';
|
inputs['cache'] = 'poetry';
|
||||||
inputs['python-version'] = '3.10.0';
|
inputs['python-version'] = '3.10.0';
|
||||||
getStateSpy.mockImplementation((name: string) => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
(name: string) => {
|
||||||
return poetryLockHash;
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return poetryLockHash;
|
||||||
return JSON.stringify([__dirname]);
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else {
|
return JSON.stringify([__dirname]);
|
||||||
return requirementsHash;
|
} else {
|
||||||
|
return requirementsHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -205,15 +265,17 @@ describe('run', () => {
|
|||||||
it('saves with -1 cacheId , should not fail workflow', async () => {
|
it('saves with -1 cacheId , should not fail workflow', async () => {
|
||||||
inputs['cache'] = 'poetry';
|
inputs['cache'] = 'poetry';
|
||||||
inputs['python-version'] = '3.10.0';
|
inputs['python-version'] = '3.10.0';
|
||||||
getStateSpy.mockImplementation((name: string) => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
(name: string) => {
|
||||||
return poetryLockHash;
|
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return poetryLockHash;
|
||||||
return JSON.stringify([__dirname]);
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else {
|
return JSON.stringify([__dirname]);
|
||||||
return requirementsHash;
|
} else {
|
||||||
|
return requirementsHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
saveCacheSpy.mockImplementation(() => {
|
saveCacheSpy.mockImplementation(() => {
|
||||||
return -1;
|
return -1;
|
||||||
@@ -234,15 +296,17 @@ describe('run', () => {
|
|||||||
it('saves with error from toolkit, should not fail the workflow', async () => {
|
it('saves with error from toolkit, should not fail the workflow', async () => {
|
||||||
inputs['cache'] = 'npm';
|
inputs['cache'] = 'npm';
|
||||||
inputs['python-version'] = '3.10.0';
|
inputs['python-version'] = '3.10.0';
|
||||||
getStateSpy.mockImplementation((name: string) => {
|
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
||||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
(name: string) => {
|
||||||
return poetryLockHash;
|
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return poetryLockHash;
|
||||||
return JSON.stringify([__dirname]);
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else {
|
return JSON.stringify([__dirname]);
|
||||||
return requirementsHash;
|
} else {
|
||||||
|
return requirementsHash;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
);
|
||||||
|
|
||||||
saveCacheSpy.mockImplementation(() => {
|
saveCacheSpy.mockImplementation(() => {
|
||||||
throw new cache.ValidationError('Validation failed');
|
throw new cache.ValidationError('Validation failed');
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ name = "pypi"
|
|||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
flake8 = "==6.0.0"
|
flake8 = "==6.0.0"
|
||||||
numpy = "==2.2.4"
|
numpy = "==2.4.6"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
|
|
||||||
|
|||||||
Generated
+75
-58
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "9d0bc7ff1f9078396b19f05bc5cd57894f3783c68f96fa9d623b1ea5a1b168f5"
|
"sha256": "0060d5c4915f1f35aae1f3e9fa6de3f65d1a851e6e33ac57a04665d5d1c796fa"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
@@ -35,65 +35,82 @@
|
|||||||
},
|
},
|
||||||
"numpy": {
|
"numpy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:05c076d531e9998e7e694c36e8b349969c56eadd2cdcd07242958489d79a7286",
|
"sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1",
|
||||||
"sha256:0d54974f9cf14acf49c60f0f7f4084b6579d24d439453d5fc5805d46a165b542",
|
"sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4",
|
||||||
"sha256:11c43995255eb4127115956495f43e9343736edb7fcdb0d973defd9de14cd84f",
|
"sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f",
|
||||||
"sha256:188dcbca89834cc2e14eb2f106c96d6d46f200fe0200310fc29089657379c58d",
|
"sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079",
|
||||||
"sha256:1974afec0b479e50438fc3648974268f972e2d908ddb6d7fb634598cdb8260a0",
|
"sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096",
|
||||||
"sha256:1cf4e5c6a278d620dee9ddeb487dc6a860f9b199eadeecc567f777daace1e9e7",
|
"sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47",
|
||||||
"sha256:207a2b8441cc8b6a2a78c9ddc64d00d20c303d79fba08c577752f080c4007ee3",
|
"sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66",
|
||||||
"sha256:218f061d2faa73621fa23d6359442b0fc658d5b9a70801373625d958259eaca3",
|
"sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d",
|
||||||
"sha256:2aad3c17ed2ff455b8eaafe06bcdae0062a1db77cb99f4b9cbb5f4ecb13c5146",
|
"sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1",
|
||||||
"sha256:2fa8fa7697ad1646b5c93de1719965844e004fcad23c91228aca1cf0800044a1",
|
"sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e",
|
||||||
"sha256:31504f970f563d99f71a3512d0c01a645b692b12a63630d6aafa0939e52361e6",
|
"sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147",
|
||||||
"sha256:3387dd7232804b341165cedcb90694565a6015433ee076c6754775e85d86f1fc",
|
"sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd",
|
||||||
"sha256:4ba5054787e89c59c593a4169830ab362ac2bee8a969249dc56e5d7d20ff8df9",
|
"sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75",
|
||||||
"sha256:4f92084defa704deadd4e0a5ab1dc52d8ac9e8a8ef617f3fbb853e79b0ea3592",
|
"sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063",
|
||||||
"sha256:65ef3468b53269eb5fdb3a5c09508c032b793da03251d5f8722b1194f1790c00",
|
"sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73",
|
||||||
"sha256:6f527d8fdb0286fd2fd97a2a96c6be17ba4232da346931d967a0630050dfd298",
|
"sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab",
|
||||||
"sha256:7051ee569db5fbac144335e0f3b9c2337e0c8d5c9fee015f259a5bd70772b7e8",
|
"sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4",
|
||||||
"sha256:7716e4a9b7af82c06a2543c53ca476fa0b57e4d760481273e09da04b74ee6ee2",
|
"sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41",
|
||||||
"sha256:79bd5f0a02aa16808fcbc79a9a376a147cc1045f7dfe44c6e7d53fa8b8a79392",
|
"sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402",
|
||||||
"sha256:7a4e84a6283b36632e2a5b56e121961f6542ab886bc9e12f8f9818b3c266bfbb",
|
"sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698",
|
||||||
"sha256:8120575cb4882318c791f839a4fd66161a6fa46f3f0a5e613071aae35b5dd8f8",
|
"sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7",
|
||||||
"sha256:81413336ef121a6ba746892fad881a83351ee3e1e4011f52e97fba79233611fd",
|
"sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8",
|
||||||
"sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9",
|
"sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b",
|
||||||
"sha256:879cf3a9a2b53a4672a168c21375166171bc3932b7e21f622201811c43cdd3b0",
|
"sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8",
|
||||||
"sha256:892c10d6a73e0f14935c31229e03325a7b3093fafd6ce0af704be7f894d95687",
|
"sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0",
|
||||||
"sha256:92bda934a791c01d6d9d8e038363c50918ef7c40601552a58ac84c9613a665bc",
|
"sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662",
|
||||||
"sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f",
|
"sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91",
|
||||||
"sha256:9eeea959168ea555e556b8188da5fa7831e21d91ce031e95ce23747b7609f8a4",
|
"sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0",
|
||||||
"sha256:a0258ad1f44f138b791327961caedffbf9612bfa504ab9597157806faa95194a",
|
"sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f",
|
||||||
"sha256:a761ba0fa886a7bb33c6c8f6f20213735cb19642c580a931c625ee377ee8bd39",
|
"sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3",
|
||||||
"sha256:a7b9084668aa0f64e64bd00d27ba5146ef1c3a8835f3bd912e7a9e01326804c4",
|
"sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f",
|
||||||
"sha256:a84eda42bd12edc36eb5b53bbcc9b406820d3353f1994b6cfe453a33ff101775",
|
"sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67",
|
||||||
"sha256:ab2939cd5bec30a7430cbdb2287b63151b77cf9624de0532d629c9a1c59b1d5c",
|
"sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6",
|
||||||
"sha256:ac0280f1ba4a4bfff363a99a6aceed4f8e123f8a9b234c89140f5e894e452ecd",
|
"sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997",
|
||||||
"sha256:adf8c1d66f432ce577d0197dceaac2ac00c0759f573f28516246351c58a85020",
|
"sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b",
|
||||||
"sha256:b4adfbbc64014976d2f91084915ca4e626fbf2057fb81af209c1a6d776d23e3d",
|
"sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e",
|
||||||
"sha256:bb649f8b207ab07caebba230d851b579a3c8711a851d29efe15008e31bb4de24",
|
"sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538",
|
||||||
"sha256:bce43e386c16898b91e162e5baaad90c4b06f9dcbe36282490032cec98dc8ae7",
|
"sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627",
|
||||||
"sha256:bd3ad3b0a40e713fc68f99ecfd07124195333f1e689387c180813f0e94309d6f",
|
"sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93",
|
||||||
"sha256:c3f7ac96b16955634e223b579a3e5798df59007ca43e8d451a0e6a50f6bfdfba",
|
"sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02",
|
||||||
"sha256:cf28633d64294969c019c6df4ff37f5698e8326db68cc2b66576a51fad634880",
|
"sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853",
|
||||||
"sha256:d0f35b19894a9e08639fd60a1ec1978cb7f5f7f1eace62f38dd36be8aecdef4d",
|
"sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c",
|
||||||
"sha256:db1f1c22173ac1c58db249ae48aa7ead29f534b9a948bc56828337aa84a32ed6",
|
"sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43",
|
||||||
"sha256:dbe512c511956b893d2dacd007d955a3f03d555ae05cfa3ff1c1ff6df8851854",
|
"sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd",
|
||||||
"sha256:df2f57871a96bbc1b69733cd4c51dc33bea66146b8c63cacbfed73eec0883017",
|
"sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8",
|
||||||
"sha256:e2f085ce2e813a50dfd0e01fbfc0c12bbe5d2063d99f8b29da30e544fb6483b8",
|
"sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089",
|
||||||
"sha256:e642d86b8f956098b564a45e6f6ce68a22c2c97a04f5acd3f221f57b8cb850ae",
|
"sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778",
|
||||||
"sha256:e9e0a277bb2eb5d8a7407e14688b85fd8ad628ee4e0c7930415687b6564207a4",
|
"sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1",
|
||||||
"sha256:ea2bb7e2ae9e37d96835b3576a4fa4b3a97592fbea8ef7c3587078b0068b8f09",
|
"sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb",
|
||||||
"sha256:ee4d528022f4c5ff67332469e10efe06a267e32f4067dc76bb7e2cddf3cd25ff",
|
"sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261",
|
||||||
"sha256:f05d4198c1bacc9124018109c5fba2f3201dbe7ab6e92ff100494f236209c960",
|
"sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb",
|
||||||
"sha256:f34dc300df798742b3d06515aa2a0aee20941c13579d7a2f2e10af01ae4901ee",
|
"sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a",
|
||||||
"sha256:f4162988a360a29af158aeb4a2f4f09ffed6a969c9776f8f3bdee9b06a8ab7e5",
|
"sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8",
|
||||||
"sha256:f486038e44caa08dbd97275a9a35a283a8f1d2f0ee60ac260a1790e76660833c",
|
"sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359",
|
||||||
"sha256:f7de08cbe5551911886d1ab60de58448c6df0f67d9feb7d1fb21e9875ef95e91"
|
"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",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.10'",
|
"markers": "python_version >= '3.11'",
|
||||||
"version": "==2.2.4"
|
"version": "==2.4.6"
|
||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ python = ">=3.9,<3.14"
|
|||||||
flake8 = "^4.0.1"
|
flake8 = "^4.0.1"
|
||||||
pyinstaller = "6.10.0"
|
pyinstaller = "6.10.0"
|
||||||
setuptools = ">=78.1.1"
|
setuptools = ">=78.1.1"
|
||||||
|
packaging = ">=22.0,<26"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
certifi==2020.6.20
|
certifi==2024.7.4
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
docutils==0.16
|
docutils==0.16
|
||||||
idna==3.7
|
idna==3.15
|
||||||
Kivy==2.0.0rc3
|
Kivy==2.0.0rc3
|
||||||
Kivy-Garden==0.1.4
|
Kivy-Garden==0.1.4
|
||||||
packaging==20.7
|
packaging==20.7
|
||||||
pdf2image==1.12.1
|
pdf2image==1.12.1
|
||||||
Pygments==2.6.1
|
Pygments==2.20.0
|
||||||
requests==2.32.4
|
requests==2.33.0
|
||||||
urllib3==2.5.0
|
urllib3==2.7.0
|
||||||
xlrd==1.2.0
|
xlrd==1.2.0
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user