mirror of
https://github.com/actions/setup-python.git
synced 2026-09-17 10:01:28 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3605726ffa |
@@ -0,0 +1,6 @@
|
|||||||
|
# Ignore list
|
||||||
|
/*
|
||||||
|
|
||||||
|
# Do not ignore these folders:
|
||||||
|
!__tests__/
|
||||||
|
!src/
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
// 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
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# To get started with Dependabot version updates, you'll need to specify which
|
|
||||||
# package ecosystems to update and where the package manifests are located.
|
|
||||||
# Please see the documentation for all configuration options:
|
|
||||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
||||||
|
|
||||||
version: 2
|
|
||||||
updates:
|
|
||||||
# Enable version updates for npm
|
|
||||||
- package-ecosystem: 'npm'
|
|
||||||
# Look for `package.json` and `lock` files in the `root` directory
|
|
||||||
directory: '/'
|
|
||||||
# Check the npm registry for updates every day (weekdays)
|
|
||||||
schedule:
|
|
||||||
interval: 'weekly'
|
|
||||||
|
|
||||||
# Enable version updates for GitHub Actions
|
|
||||||
- package-ecosystem: 'github-actions'
|
|
||||||
# Workflow files stored in the default location of `.github/workflows`
|
|
||||||
# You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.
|
|
||||||
directory: '/'
|
|
||||||
schedule:
|
|
||||||
interval: 'weekly'
|
|
||||||
@@ -13,5 +13,3 @@ jobs:
|
|||||||
call-basic-validation:
|
call-basic-validation:
|
||||||
name: Basic validation
|
name: Basic validation
|
||||||
uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
|
uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
|
||||||
with:
|
|
||||||
node-version: '24.x'
|
|
||||||
|
|||||||
@@ -15,5 +15,3 @@ jobs:
|
|||||||
call-check-dist:
|
call-check-dist:
|
||||||
name: Check dist/
|
name: Check dist/
|
||||||
uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
|
uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
|
||||||
with:
|
|
||||||
node-version: '24.x'
|
|
||||||
|
|||||||
@@ -1,259 +0,0 @@
|
|||||||
name: e2e-cache freethread
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- releases/*
|
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
jobs:
|
|
||||||
python-pip-dependencies-caching:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
|
|
||||||
python-pipenv-dependencies-caching:
|
|
||||||
name: Test pipenv (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
id: cache-pipenv
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pipenv'
|
|
||||||
- name: Install pipenv
|
|
||||||
run: python -m pip install --upgrade pip pipenv
|
|
||||||
- name: Install dependencies on Linux/macOS
|
|
||||||
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:
|
|
||||||
name: Test poetry (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14, 3.14.6]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Install poetry
|
|
||||||
run: pipx install poetry
|
|
||||||
- name: Init pyproject.toml
|
|
||||||
run: mv ./__tests__/data/pyproject.toml .
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
freethreaded: true
|
|
||||||
cache: 'poetry'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: poetry install --no-root
|
|
||||||
|
|
||||||
python-pip-dependencies-caching-path:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
cache-dependency-path: __tests__/data/requirements.txt
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
|
|
||||||
python-pipenv-dependencies-caching-path:
|
|
||||||
name: Test pipenv (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
id: cache-pipenv
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pipenv'
|
|
||||||
cache-dependency-path: '**/pipenv-requirements.txt'
|
|
||||||
- name: Install pipenv
|
|
||||||
run: python -m pip install --upgrade pip pipenv
|
|
||||||
- name: Install dependencies on Linux/macOS
|
|
||||||
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:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
pip-version: '25.0.1'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
|
|
||||||
python-pip-dependencies-caching-path-with-pip-version:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13.14t, 3.14.6t]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: 3.13.14t
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
cache-dependency-path: __tests__/data/requirements.txt
|
|
||||||
pip-version: '25.0.1'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
+22
-171
@@ -10,7 +10,6 @@ on:
|
|||||||
- releases/*
|
- releases/*
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
@@ -21,28 +20,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-13]
|
||||||
[
|
python-version: ['3.9', 'pypy-3.7-v7.x']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version:
|
|
||||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: macos-13
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: 'pypy-3.7-v7.x'
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: '3.10'
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -57,26 +41,10 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
[
|
python-version: ['3.9', 'pypy-3.9-v7.x']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
|
||||||
- os: windows-latest
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -109,32 +77,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
[
|
python-version: ['3.9', 'pypy-3.8']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version:
|
|
||||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
|
||||||
- os: windows-latest
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: '3.10'
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Install poetry
|
- name: Install poetry
|
||||||
run: |
|
run: pipx install poetry
|
||||||
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
|
||||||
@@ -142,40 +90,22 @@ 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
|
||||||
|
|
||||||
python-pip-dependencies-caching-path:
|
python-pip-dependencies-caching-path:
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-13]
|
||||||
[
|
python-version: ['3.9', 'pypy-3.7-v7.x']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version:
|
|
||||||
['3.10', '3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-latest
|
- os: macos-13
|
||||||
python-version: pypy-3.11-v7.x
|
python-version: 'pypy-3.7-v7.x'
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: '3.10'
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -186,31 +116,15 @@ jobs:
|
|||||||
run: pip install numpy pandas requests
|
run: pip install numpy pandas requests
|
||||||
|
|
||||||
python-pipenv-dependencies-caching-path:
|
python-pipenv-dependencies-caching-path:
|
||||||
name: Test pipenv (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
name: Test pipenv (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
[
|
python-version: ['3.9', 'pypy-3.9-v7.x']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: ['3.11', 'pypy-3.11-v7.x', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
|
||||||
- os: windows-latest
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: ubuntu-22.04
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: pypy-3.11-v7.x
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
id: cache-pipenv
|
id: cache-pipenv
|
||||||
uses: ./
|
uses: ./
|
||||||
@@ -237,66 +151,3 @@ jobs:
|
|||||||
}
|
}
|
||||||
- name: Run Python Script
|
- name: Run Python Script
|
||||||
run: pipenv run python test-pipenv.py
|
run: pipenv run python test-pipenv.py
|
||||||
|
|
||||||
python-pip-dependencies-caching-with-pip-version:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }})
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: '3.10'
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
pip-version: '25.0.1'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
|
|
||||||
python-pip-dependencies-caching-path-with-pip-version:
|
|
||||||
name: Test pip (Python ${{ matrix.python-version}}, ${{ matrix.os }}, caching path)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python-version: '3.10'
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
cache: 'pip'
|
|
||||||
cache-dependency-path: __tests__/data/requirements.txt
|
|
||||||
pip-version: '25.0.1'
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pip install numpy pandas requests
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-setup-python:
|
test-setup-python:
|
||||||
@@ -17,90 +16,73 @@ jobs:
|
|||||||
runs-on: ${{ matrix.operating-system }}
|
runs-on: ${{ matrix.operating-system }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
operating-system:
|
operating-system: [ubuntu-20.04, windows-latest]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Run with setup-python 3.10.11
|
- name: Run with setup-python 3.6
|
||||||
if: matrix.operating-system != 'windows-11-arm'
|
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.10.11
|
python-version: 3.6
|
||||||
- name: Verify 3.10.11
|
- name: Verify 3.6
|
||||||
if: matrix.operating-system != 'windows-11-arm'
|
run: python __tests__/verify-python.py 3.6
|
||||||
run: python __tests__/verify-python.py 3.10.11
|
|
||||||
|
|
||||||
- name: Run with setup-python 3.11.9
|
- name: Run with setup-python 3.7
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.11.9
|
python-version: 3.7
|
||||||
- name: Verify 3.11.9
|
- name: Verify 3.7
|
||||||
run: python __tests__/verify-python.py 3.11.9
|
run: python __tests__/verify-python.py 3.7
|
||||||
|
|
||||||
- name: Run with setup-python 3.12.10
|
- name: Run with setup-python 3.8
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.12.10
|
python-version: 3.8
|
||||||
- name: Verify 3.12.10
|
- name: Verify 3.8
|
||||||
run: python __tests__/verify-python.py 3.12.10
|
run: python __tests__/verify-python.py 3.8
|
||||||
|
|
||||||
- name: Run with setup-python 3.13.14
|
- name: Run with setup-python 3.7.5
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.13.14
|
python-version: 3.7.5
|
||||||
- name: Verify 3.13.14
|
- name: Verify 3.7.5
|
||||||
run: python __tests__/verify-python.py 3.13.14
|
run: python __tests__/verify-python.py 3.7.5
|
||||||
|
|
||||||
- name: Run with setup-python 3.14.6
|
- name: Run with setup-python 3.6.7
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 3.14.6
|
python-version: 3.6.7
|
||||||
- name: Verify 3.14.6
|
- name: Verify 3.6.7
|
||||||
run: python __tests__/verify-python.py 3.14.6
|
run: python __tests__/verify-python.py 3.6.7
|
||||||
|
|
||||||
- name: Run with setup-python 3.14
|
- name: Run with setup-python 3.8.1
|
||||||
id: cp314
|
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.14'
|
python-version: 3.8.1
|
||||||
- name: Verify 3.14
|
- name: Verify 3.8.1
|
||||||
run: python __tests__/verify-python.py 3.14
|
run: python __tests__/verify-python.py 3.8.1
|
||||||
|
|
||||||
- name: Install pipx (Windows)
|
- name: Run with setup-python 3.10
|
||||||
if: runner.os == 'Windows'
|
id: cp310
|
||||||
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: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '==3.14'
|
python-version: '3.10'
|
||||||
- name: Verify ==3.14
|
- name: Verify 3.10
|
||||||
run: python __tests__/verify-python.py 3.14
|
run: python __tests__/verify-python.py 3.10
|
||||||
|
- name: Run python-path sample 3.10
|
||||||
|
run: pipx run --python '${{ steps.cp310.outputs.python-path }}' nox --version
|
||||||
|
|
||||||
- name: Run with setup-python <3.14
|
- name: Run with setup-python ==3.8
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '<3.14'
|
python-version: '==3.8'
|
||||||
- name: Verify <3.14
|
- name: Verify ==3.8
|
||||||
run: python __tests__/verify-python.py 3.13
|
run: python __tests__/verify-python.py 3.8
|
||||||
|
|
||||||
- name: Test Raw Endpoint Access
|
- name: Run with setup-python <3.11
|
||||||
run: |
|
uses: ./
|
||||||
curl -L https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json | jq empty
|
with:
|
||||||
shell: bash
|
python-version: '<3.11'
|
||||||
|
- name: Verify <3.11
|
||||||
|
run: python __tests__/verify-python.py 3.10
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
name: 'Publish Immutable Action Version'
|
|
||||||
|
|
||||||
on:
|
|
||||||
release:
|
|
||||||
types: [published]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
publish:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
id-token: write
|
|
||||||
packages: write
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checking out
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Publish
|
|
||||||
id: publish
|
|
||||||
uses: actions/publish-immutable-action@4bc8754ffc40f27910afb20287dbbbb675a4e978 # v0.0.4
|
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Update the ${{ env.TAG_NAME }} tag
|
- name: Update the ${{ env.TAG_NAME }} tag
|
||||||
uses: actions/publish-action@v0.4.0
|
uses: actions/publish-action@v0.2.2
|
||||||
with:
|
with:
|
||||||
source-tag: ${{ env.TAG_NAME }}
|
source-tag: ${{ env.TAG_NAME }}
|
||||||
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
|
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
setup-graalpy:
|
setup-graalpy:
|
||||||
@@ -18,23 +17,14 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-latest, ubuntu-20.04, ubuntu-latest]
|
||||||
[
|
|
||||||
macos-latest,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
graalpy:
|
graalpy:
|
||||||
- 'graalpy-23.1'
|
- 'graalpy-23.0'
|
||||||
- 'graalpy-24.2'
|
- 'graalpy-22.3'
|
||||||
- 'graalpy-25.0'
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.graalpy }}
|
- name: setup-python ${{ matrix.graalpy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -72,20 +62,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-latest, ubuntu-20.04, ubuntu-latest]
|
||||||
[
|
graalpy: ['graalpy23.0', 'graalpy22.3']
|
||||||
macos-latest,
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-22.04-arm,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
ubuntu-latest,
|
|
||||||
macos-15-intel
|
|
||||||
]
|
|
||||||
graalpy: ['graalpy23.1', 'graalpy24.2', 'graalpy25.0']
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.graalpy }}
|
- name: setup-python ${{ matrix.graalpy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -105,14 +87,14 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
|
os: [ubuntu-latest, macos-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup GraalPy and check latest
|
- name: Setup GraalPy and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
id: graalpy
|
id: graalpy
|
||||||
with:
|
with:
|
||||||
python-version: 'graalpy-25.x'
|
python-version: 'graalpy-23.x'
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: GraalPy and Python version
|
- name: GraalPy and Python version
|
||||||
run: python --version
|
run: python --version
|
||||||
|
|||||||
+31
-107
@@ -11,7 +11,6 @@ on:
|
|||||||
- '**.md'
|
- '**.md'
|
||||||
schedule:
|
schedule:
|
||||||
- cron: 30 3 * * *
|
- cron: 30 3 * * *
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
setup-pypy:
|
setup-pypy:
|
||||||
@@ -20,77 +19,26 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-latest]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
pypy:
|
pypy:
|
||||||
- 'pypy-3.11'
|
- 'pypy-2.7'
|
||||||
- 'pypy-3.11-v7.3.23'
|
- 'pypy-3.7'
|
||||||
- 'pypy-3.11-v7.3.x'
|
- 'pypy3.9'
|
||||||
- 'pypy-3.11-v7.x'
|
- 'pypy-2.7-v7.3.4'
|
||||||
- 'pypy-3.11-nightly'
|
- 'pypy-3.7-v7.3.5'
|
||||||
- 'pypy3.11-v7.3.23'
|
- 'pypy-3.7-v7.3.4'
|
||||||
|
- 'pypy-3.7-v7.3.x'
|
||||||
|
- 'pypy-3.7-v7.x'
|
||||||
|
- 'pypy-2.7-v7.3.4rc1'
|
||||||
|
- 'pypy-3.7-nightly'
|
||||||
|
- 'pypy3.8-v7.3.7'
|
||||||
|
exclude:
|
||||||
|
- os: macos-13
|
||||||
|
pypy: 'pypy-3.7-nightly'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.pypy }}
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: PyPy and Python version
|
|
||||||
run: python --version
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
- name: Assert PyPy is running
|
|
||||||
run: |
|
|
||||||
import platform
|
|
||||||
assert platform.python_implementation().lower() == "pypy"
|
|
||||||
shell: python
|
|
||||||
|
|
||||||
- name: Assert expected binaries (or symlinks) are present
|
|
||||||
run: |
|
|
||||||
EXECUTABLE=${{ matrix.pypy }}
|
|
||||||
EXECUTABLE=${EXECUTABLE/pypy-/pypy} # remove the first '-' in "pypy-X.Y" -> "pypyX.Y" to match executable name
|
|
||||||
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
|
||||||
${EXECUTABLE} --version
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
check-non-eol:
|
|
||||||
name: Check non-eol ${{ matrix.pypy }} on ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
pypy: ['pypy-3.11']
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
- name: setup-python ${{ matrix.pypy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -128,20 +76,12 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-latest]
|
||||||
[
|
pypy: ['pypy2.7', 'pypy3.7', 'pypy3.8', 'pypy3.9-nightly']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
pypy: ['pypy3.11-nightly', 'pypy3.11']
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.pypy }}
|
- name: setup-python ${{ matrix.pypy }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -161,21 +101,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-13]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup PyPy and check latest
|
- name: Setup PyPy and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: 'pypy-3.11-v7.3.x'
|
python-version: 'pypy-3.7-v7.3.x'
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: PyPy and Python version
|
- name: PyPy and Python version
|
||||||
run: python --version
|
run: python --version
|
||||||
@@ -191,7 +123,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Assert expected binaries (or symlinks) are present
|
- name: Assert expected binaries (or symlinks) are present
|
||||||
run: |
|
run: |
|
||||||
EXECUTABLE="pypy-3.11-v7.3.x"
|
EXECUTABLE="pypy-3.7-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 -* suffixe
|
||||||
${EXECUTABLE} --version
|
${EXECUTABLE} --version
|
||||||
@@ -202,23 +134,15 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-13]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- 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.7-v7.3.x
|
||||||
pypy-3.10-v7.3.x
|
pypy3.8
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: PyPy and Python version
|
- name: PyPy and Python version
|
||||||
run: python --version
|
run: python --version
|
||||||
@@ -234,15 +158,15 @@ jobs:
|
|||||||
|
|
||||||
- name: Assert expected binaries (or symlinks) are present
|
- name: Assert expected binaries (or symlinks) are present
|
||||||
run: |
|
run: |
|
||||||
EXECUTABLE="pypy-3.11-v7.3.x"
|
EXECUTABLE="pypy-3.7-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 -* suffix
|
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
||||||
${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='pypy-3.10-v7.3.x'
|
EXECUTABLE='pypy3.8'
|
||||||
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 -* suffix
|
EXECUTABLE=${EXECUTABLE%%-*} # remove any -* suffixe
|
||||||
${EXECUTABLE} --version
|
${EXECUTABLE} --version
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@@ -1,557 +0,0 @@
|
|||||||
name: Validate Python e2e freethread
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- '**.md'
|
|
||||||
schedule:
|
|
||||||
- cron: 30 3 * * *
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
setup-versions-from-manifest:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python }}
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-file:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} version file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: .python-version
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-file-without-parameter:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} version file without parameter
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-standard-pyproject-file:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} standard pyproject file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14, 3.14.6]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[project]
|
|
||||||
requires-python = "${{ matrix.python }}"
|
|
||||||
' > pyproject.toml
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: pyproject.toml
|
|
||||||
freethreaded: true
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-poetry-pyproject-file:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} poetry pyproject file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14, 3.14.6]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[tool.poetry.dependencies]
|
|
||||||
python = "${{ matrix.python }}"
|
|
||||||
' > pyproject.toml
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: pyproject.toml
|
|
||||||
freethreaded: true
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-tool-versions-file:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} .tool-versions file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t, 3.15t-dev]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-tool-versions-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo "python ${{ matrix.python }}" > .tool-versions
|
|
||||||
|
|
||||||
- name: setup-python using .tool-versions ${{ matrix.python }}
|
|
||||||
id: setup-python-tool-versions
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: .tool-versions
|
|
||||||
|
|
||||||
setup-versions-from-pipfile-with-python_version:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13t, 3.15t-dev]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[requires]
|
|
||||||
python_version = "${{ matrix.python }}"
|
|
||||||
' > Pipfile
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: Pipfile
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-pipfile-with-python_full_version:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} .tool-versions file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t, 3.15t-dev]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[requires]
|
|
||||||
python_full_version = "${{ matrix.python }}"
|
|
||||||
' > Pipfile
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: Pipfile
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-pre-release-version-from-manifest:
|
|
||||||
name: Setup 3.15.0-beta.3 ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python 3.15.0-beta.3
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: '3.15.0-beta.3'
|
|
||||||
freethreaded: true
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-dev-version:
|
|
||||||
name: Setup 3.15t-dev ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python 3.15t-dev
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: '3.15t-dev'
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Validate version
|
|
||||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-prerelease-version:
|
|
||||||
name: Setup 3.15t ${{ matrix.os }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python 3.15t
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: '3.15t'
|
|
||||||
allow-prereleases: true
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Validate version
|
|
||||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-noenv:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} (noenv)
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14t, 3.14.6t]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python }}
|
|
||||||
update-environment: false
|
|
||||||
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
check-latest:
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python-version: [3.13t, 3.15t-dev]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup Python and check latest
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python-version }}
|
|
||||||
check-latest: true
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
setup-python-multiple-python-versions:
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: Setup multiple Python versions
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: |
|
|
||||||
3.13.14t
|
|
||||||
3.14.6t
|
|
||||||
3.15t-dev
|
|
||||||
- name: Verify Python version
|
|
||||||
run: ${{ steps.setup-python.outputs.python-path }} -VVV
|
|
||||||
|
|
||||||
setup-versions-with-freethread-input:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} using freethread input parameter
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.13.14, 3.14.6, 3.15-dev, 3.15.0-beta.3]
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version: ${{ matrix.python }}
|
|
||||||
freethreaded: true
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
- name: Validate GIL
|
|
||||||
run: python ./__tests__/verify-freethreaded.py
|
|
||||||
@@ -20,23 +20,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: [3.6.7, 3.7.5, 3.8.15, 3.9.13]
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-11-arm
|
- os: ubuntu-22.04
|
||||||
python: 3.10.11
|
python: 3.6.7
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
python: 3.7.5
|
||||||
|
- os: windows-latest
|
||||||
|
python: 3.8.15
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -67,23 +62,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: [3.6.7, 3.7.5, 3.8.15, 3.9.13]
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-11-arm
|
- os: ubuntu-22.04
|
||||||
python: 3.10.11
|
python: 3.6.7
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
python: 3.7.5
|
||||||
|
- os: windows-latest
|
||||||
|
python: 3.8.15
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -117,23 +107,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: [3.6.7, 3.7.5, 3.8.15, 3.9.13]
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-11-arm
|
- os: ubuntu-22.04
|
||||||
python: 3.10.11
|
python: 3.6.7
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
python: 3.7.5
|
||||||
|
- os: windows-latest
|
||||||
|
python: 3.8.15
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: echo ${{ matrix.python }} > .python-version
|
run: echo ${{ matrix.python }} > .python-version
|
||||||
@@ -165,23 +150,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: [3.6.7, 3.7.5, 3.8.15, 3.9.13, '==3.10.10']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, '==3.12.10', 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-11-arm
|
- os: ubuntu-22.04
|
||||||
python: 3.10.11
|
python: 3.6.7
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
python: 3.7.5
|
||||||
|
- os: windows-latest
|
||||||
|
python: 3.8.15
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -218,23 +198,18 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: [3.6.7, 3.7.5, 3.8.15, 3.9.13]
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.12.10, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
exclude:
|
||||||
- os: windows-11-arm
|
- os: ubuntu-22.04
|
||||||
python: 3.10.11
|
python: 3.6.7
|
||||||
|
- os: ubuntu-22.04
|
||||||
|
python: 3.7.5
|
||||||
|
- os: windows-latest
|
||||||
|
python: 3.8.15
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
- name: build-version-file ${{ matrix.python }}
|
||||||
run: |
|
run: |
|
||||||
@@ -265,175 +240,22 @@ 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-from-tool-versions-file:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} .tool-versions file
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
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.14, 3.15-dev]
|
|
||||||
exclude:
|
|
||||||
- os: windows-latest
|
|
||||||
python: graalpy-24.1.2
|
|
||||||
- os: windows-11-arm
|
|
||||||
python: graalpy-24.1.2
|
|
||||||
- os: windows-11-arm
|
|
||||||
python: pypy3.11-7.3.18
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-tool-versions-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo "python ${{ matrix.python }}" > .tool-versions
|
|
||||||
|
|
||||||
- name: setup-python using .tool-versions ${{ matrix.python }}
|
|
||||||
id: setup-python-tool-versions
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: .tool-versions
|
|
||||||
|
|
||||||
setup-versions-from-pipfile-with-python_version:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile with python_version
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python: 3.10.11
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[requires]
|
|
||||||
python_version = "${{ matrix.python }}"
|
|
||||||
' > Pipfile
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: Pipfile
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Validate version
|
|
||||||
run: |
|
|
||||||
$pythonVersion = (python --version)
|
|
||||||
if ("Python ${{ matrix.python }}".replace("==", "") -ne "$pythonVersion"){
|
|
||||||
Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
$pythonVersion
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-versions-from-pipfile-with-python_full_version:
|
|
||||||
name: Setup ${{ matrix.python }} ${{ matrix.os }} Pipfile with python_full_version
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
os:
|
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
python: [3.10.11, 3.11.9, 3.13.14, 3.14.6]
|
|
||||||
exclude:
|
|
||||||
- os: windows-11-arm
|
|
||||||
python: 3.10.11
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
||||||
|
|
||||||
- name: build-version-file ${{ matrix.python }}
|
|
||||||
run: |
|
|
||||||
echo '[requires]
|
|
||||||
python_full_version = "${{ matrix.python }}"
|
|
||||||
' > Pipfile
|
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
|
||||||
id: setup-python
|
|
||||||
uses: ./
|
|
||||||
with:
|
|
||||||
python-version-file: Pipfile
|
|
||||||
|
|
||||||
- name: Check python-path
|
|
||||||
run: ./__tests__/check-python-path.sh '${{ steps.setup-python.outputs.python-path }}'
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
- name: Validate version
|
|
||||||
run: |
|
|
||||||
$pythonVersion = (python --version)
|
|
||||||
if ("Python ${{ matrix.python }}".replace("==", "") -ne "$pythonVersion"){
|
|
||||||
Write-Host "The current version is $pythonVersion; expected version is ${{ matrix.python }}"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
$pythonVersion
|
|
||||||
shell: pwsh
|
|
||||||
|
|
||||||
- name: Run simple code
|
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
|
||||||
|
|
||||||
setup-pre-release-version-from-manifest:
|
setup-pre-release-version-from-manifest:
|
||||||
name: Setup 3.15.0-beta.3 ${{ matrix.os }}
|
name: Setup 3.9.0-beta.4 ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python 3.15.0-beta.3
|
- name: setup-python 3.9.0-beta.4
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.15.0-beta.3'
|
python-version: '3.9.0-beta.4'
|
||||||
|
|
||||||
- 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 }}'
|
||||||
@@ -442,8 +264,8 @@ jobs:
|
|||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: |
|
run: |
|
||||||
$pythonVersion = (python --version)
|
$pythonVersion = (python --version)
|
||||||
if ("Python 3.15.0b3" -ne "$pythonVersion"){
|
if ("Python 3.9.0b4" -ne "$pythonVersion"){
|
||||||
Write-Host "The current version is $pythonVersion; expected version is 3.15.0b3"
|
Write-Host "The current version is $pythonVersion; expected version is 3.9.0b4"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
@@ -453,67 +275,49 @@ 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.15-dev ${{ matrix.os }}
|
name: Setup 3.9-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-latest]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python 3.15-dev
|
- name: setup-python 3.9-dev
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.15-dev'
|
python-version: '3.9-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.15.') }}
|
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.9.') }}
|
||||||
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.15 ${{ matrix.os }}
|
name: Setup 3.12 ${{ 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-latest]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python 3.15
|
- name: setup-python 3.12
|
||||||
id: setup-python
|
id: setup-python
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: '3.15'
|
python-version: '3.12'
|
||||||
allow-prereleases: true
|
allow-prereleases: true
|
||||||
|
|
||||||
- name: Check python-path
|
- name: Check python-path
|
||||||
@@ -521,7 +325,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.15.') }}
|
run: ${{ startsWith(steps.setup-python.outputs.python-version, '3.12.') }}
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
@@ -533,23 +337,11 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [macos-13, windows-latest, ubuntu-20.04, ubuntu-22.04]
|
||||||
[
|
python: ['3.7', '3.8', '3.9', '3.10']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: setup-python ${{ matrix.python }}
|
- name: setup-python ${{ matrix.python }}
|
||||||
id: setup-python
|
id: setup-python
|
||||||
@@ -569,22 +361,10 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
||||||
[
|
python-version: ['3.8', '3.9', '3.10']
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
@@ -605,32 +385,23 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os: [ubuntu-22.04, windows-latest, macos-13]
|
||||||
[
|
|
||||||
ubuntu-22.04,
|
|
||||||
ubuntu-latest,
|
|
||||||
ubuntu-24.04-arm,
|
|
||||||
windows-latest,
|
|
||||||
windows-11-arm,
|
|
||||||
macos-15-intel,
|
|
||||||
macos-latest
|
|
||||||
]
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Python and check latest
|
- name: Setup Python and check latest
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
python-version: |
|
python-version: |
|
||||||
3.11
|
3.7
|
||||||
3.12
|
3.8
|
||||||
3.13
|
3.9
|
||||||
3.14
|
3.10
|
||||||
check-latest: true
|
check-latest: true
|
||||||
- name: Validate version
|
- name: Validate version
|
||||||
run: |
|
run: |
|
||||||
$pythonVersion = (python --version)
|
$pythonVersion = (python --version)
|
||||||
if ("$pythonVersion" -NotMatch "3.14"){
|
if ("$pythonVersion" -NotMatch "3.10"){
|
||||||
Write-Host "The current version is $pythonVersion; expected version is 3.14"
|
Write-Host "The current version is $pythonVersion; expected version is 3.10"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
$pythonVersion
|
$pythonVersion
|
||||||
|
|||||||
+1
-5
@@ -10,10 +10,6 @@ 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.
Generated
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
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.
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.
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.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
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.
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.
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
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.
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.
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.
@@ -0,0 +1,11 @@
|
|||||||
|
// 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'
|
||||||
|
};
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"printWidth": 80,
|
|
||||||
"tabWidth": 2,
|
|
||||||
"useTabs": false,
|
|
||||||
"semi": true,
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "none",
|
|
||||||
"bracketSpacing": false,
|
|
||||||
"arrowParens": "avoid"
|
|
||||||
}
|
|
||||||
@@ -11,17 +11,6 @@ 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
|
|
||||||
|
|
||||||
- Upgraded action from node20 to node24
|
|
||||||
> Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See [Release Notes](https://github.com/actions/runner/releases/tag/v2.327.1)
|
|
||||||
|
|
||||||
For more details, see the full release notes on the [releases page](https://github.com/actions/setup-python/releases/tag/v6.0.0)
|
|
||||||
|
|
||||||
## Basic usage
|
## Basic usage
|
||||||
|
|
||||||
See [action.yml](action.yml)
|
See [action.yml](action.yml)
|
||||||
@@ -29,43 +18,22 @@ See [action.yml](action.yml)
|
|||||||
**Python**
|
**Python**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v7
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v7
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.10'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
```
|
```
|
||||||
|
|
||||||
**PyPy**
|
**PyPy**
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v7
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v7
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: 'pypy3.10'
|
python-version: 'pypy3.9'
|
||||||
- run: python my_script.py
|
- run: python my_script.py
|
||||||
```
|
```
|
||||||
|
|
||||||
**GraalPy**
|
|
||||||
```yaml
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v7
|
|
||||||
- uses: actions/setup-python@v7
|
|
||||||
with:
|
|
||||||
python-version: 'graalpy-24.0'
|
|
||||||
- run: python my_script.py
|
|
||||||
```
|
|
||||||
|
|
||||||
**Free threaded Python**
|
|
||||||
```yaml
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v7
|
|
||||||
- uses: actions/setup-python@v7
|
|
||||||
with:
|
|
||||||
python-version: '3.13t'
|
|
||||||
- run: python my_script.py
|
|
||||||
```
|
|
||||||
|
|
||||||
The `python-version` input is optional. If not supplied, the action will try to resolve the version from the default `.python-version` file. If the `.python-version` file doesn't exist Python or PyPy version from the PATH will be used. The default version of Python or PyPy in PATH varies between runners and can be changed unexpectedly so we recommend always setting Python version explicitly using the `python-version` or `python-version-file` inputs.
|
The `python-version` input is optional. If not supplied, the action will try to resolve the version from the default `.python-version` file. If the `.python-version` file doesn't exist Python or PyPy version from the PATH will be used. The default version of Python or PyPy in PATH varies between runners and can be changed unexpectedly so we recommend always setting Python version explicitly using the `python-version` or `python-version-file` inputs.
|
||||||
|
|
||||||
The action will first check the local [tool cache](docs/advanced-usage.md#hosted-tool-cache) for a [semver](https://github.com/npm/node-semver#versions) match. If unable to find a specific version in the tool cache, the action will attempt to download a version of Python from [GitHub Releases](https://github.com/actions/python-versions/releases) and for PyPy from the official [PyPy's dist](https://downloads.python.org/pypy/).
|
The action will first check the local [tool cache](docs/advanced-usage.md#hosted-tool-cache) for a [semver](https://github.com/npm/node-semver#versions) match. If unable to find a specific version in the tool cache, the action will attempt to download a version of Python from [GitHub Releases](https://github.com/actions/python-versions/releases) and for PyPy from the official [PyPy's dist](https://downloads.python.org/pypy/).
|
||||||
@@ -78,7 +46,7 @@ The `python-version` input supports the [Semantic Versioning Specification](http
|
|||||||
|
|
||||||
## Supported architectures
|
## Supported architectures
|
||||||
|
|
||||||
Using the `architecture` input, it is possible to specify the required Python or PyPy interpreter architecture: `x86`, `x64`, or `arm64`. If the input is not specified, the architecture defaults to the host OS architecture.
|
Using `architecture` input it is possible to specify the required Python or PyPy interpreter architecture: `x86` or `x64`. If the input is not specified the architecture defaults to `x64`.
|
||||||
|
|
||||||
## Caching packages dependencies
|
## Caching packages dependencies
|
||||||
|
|
||||||
@@ -94,10 +62,10 @@ The action defaults to searching for a dependency file (`requirements.txt` or `p
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v7
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v7
|
- uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
python-version: '3.13'
|
python-version: '3.9'
|
||||||
cache: 'pip' # caching pip dependencies
|
cache: 'pip' # caching pip dependencies
|
||||||
- run: pip install -r requirements.txt
|
- run: pip install -r requirements.txt
|
||||||
```
|
```
|
||||||
@@ -105,8 +73,6 @@ steps:
|
|||||||
|
|
||||||
>The requirements file format allows for specifying dependency versions using logical operators (for example chardet>=3.0.4) or specifying dependencies without any versions. In this case the pip install -r requirements.txt command will always try to install the latest available package version. To be sure that the cache will be used, please stick to a specific dependency version and update it manually if necessary.
|
>The requirements file format allows for specifying dependency versions using logical operators (for example chardet>=3.0.4) or specifying dependencies without any versions. In this case the pip install -r requirements.txt command will always try to install the latest available package version. To be sure that the cache will be used, please stick to a specific dependency version and update it manually if necessary.
|
||||||
|
|
||||||
>The `setup-python` action does not handle authentication for pip when installing packages from private repositories. For help, refer [pip’s VCS support documentation](https://pip.pypa.io/en/stable/topics/vcs-support/) or visit the [pip repository](https://github.com/pypa/pip).
|
|
||||||
|
|
||||||
See examples of using `cache` and `cache-dependency-path` for `pipenv` and `poetry` in the section: [Caching packages](docs/advanced-usage.md#caching-packages) of the [Advanced usage](docs/advanced-usage.md) guide.
|
See examples of using `cache` and `cache-dependency-path` for `pipenv` and `poetry` in the section: [Caching packages](docs/advanced-usage.md#caching-packages) of the [Advanced usage](docs/advanced-usage.md) guide.
|
||||||
|
|
||||||
## Advanced usage
|
## Advanced usage
|
||||||
@@ -116,21 +82,11 @@ See examples of using `cache` and `cache-dependency-path` for `pipenv` and `poet
|
|||||||
- [Check latest version](docs/advanced-usage.md#check-latest-version)
|
- [Check latest version](docs/advanced-usage.md#check-latest-version)
|
||||||
- [Caching packages](docs/advanced-usage.md#caching-packages)
|
- [Caching packages](docs/advanced-usage.md#caching-packages)
|
||||||
- [Outputs and environment variables](docs/advanced-usage.md#outputs-and-environment-variables)
|
- [Outputs and environment variables](docs/advanced-usage.md#outputs-and-environment-variables)
|
||||||
- [Available versions of Python, PyPy and GraalPy](docs/advanced-usage.md#available-versions-of-python-pypy-and-graalpy)
|
- [Available versions of Python and PyPy](docs/advanced-usage.md#available-versions-of-python-and-pypy)
|
||||||
- [Hosted tool cache](docs/advanced-usage.md#hosted-tool-cache)
|
- [Hosted tool cache](docs/advanced-usage.md#hosted-tool-cache)
|
||||||
- [Using `setup-python` with a self-hosted runner](docs/advanced-usage.md#using-setup-python-with-a-self-hosted-runner)
|
- [Using `setup-python` with a self-hosted runner](docs/advanced-usage.md#using-setup-python-with-a-self-hosted-runner)
|
||||||
- [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)
|
|
||||||
|
|
||||||
## Recommended permissions
|
|
||||||
|
|
||||||
When using the `setup-python` action in your GitHub Actions workflow, it is recommended to set the following permissions to ensure proper functionality:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
permissions:
|
|
||||||
contents: read # access to check out code and install dependencies
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
+60
-122
@@ -1,62 +1,10 @@
|
|||||||
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';
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
import * as cache from '@actions/cache';
|
||||||
|
import * as exec from '@actions/exec';
|
||||||
// Mock @actions modules before importing anything that depends on them
|
import * as io from '@actions/io';
|
||||||
jest.unstable_mockModule('@actions/core', () => ({
|
import {getCacheDistributor} from '../src/cache-distributions/cache-factory';
|
||||||
info: jest.fn(),
|
import {State} from '../src/cache-distributions/cache-distributor';
|
||||||
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 =
|
||||||
@@ -76,38 +24,43 @@ 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
|
||||||
`;
|
`;
|
||||||
|
|
||||||
let infoSpy: jest.Mock;
|
// core spy
|
||||||
let warningSpy: jest.Mock;
|
let infoSpy: jest.SpyInstance;
|
||||||
let debugSpy: jest.Mock;
|
let warningSpy: jest.SpyInstance;
|
||||||
let saveStateSpy: jest.Mock;
|
let debugSpy: jest.SpyInstance;
|
||||||
let getStateSpy: jest.Mock;
|
let saveStateSpy: jest.SpyInstance;
|
||||||
let setOutputSpy: jest.Mock;
|
let getStateSpy: jest.SpyInstance;
|
||||||
let restoreCacheSpy: jest.Mock;
|
let setOutputSpy: jest.SpyInstance;
|
||||||
let getExecOutputSpy: jest.Mock;
|
|
||||||
let whichSpy: jest.Mock;
|
// cache spy
|
||||||
|
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 = core.info as jest.Mock;
|
infoSpy = jest.spyOn(core, 'info');
|
||||||
infoSpy.mockImplementation(() => undefined);
|
infoSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
warningSpy = core.warning as jest.Mock;
|
warningSpy = jest.spyOn(core, 'warning');
|
||||||
warningSpy.mockImplementation(() => undefined);
|
warningSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
debugSpy = core.debug as jest.Mock;
|
debugSpy = jest.spyOn(core, 'debug');
|
||||||
debugSpy.mockImplementation(() => undefined);
|
debugSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
saveStateSpy = core.saveState as jest.Mock;
|
saveStateSpy = jest.spyOn(core, 'saveState');
|
||||||
saveStateSpy.mockImplementation(() => undefined);
|
saveStateSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
getStateSpy = core.getState as jest.Mock;
|
getStateSpy = jest.spyOn(core, 'getState');
|
||||||
getStateSpy.mockImplementation(() => undefined);
|
getStateSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
getExecOutputSpy = exec.getExecOutput as jest.Mock;
|
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
||||||
(
|
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};
|
||||||
}
|
}
|
||||||
@@ -121,19 +74,17 @@ 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 = core.setOutput as jest.Mock;
|
setOutputSpy = jest.spyOn(core, 'setOutput');
|
||||||
setOutputSpy.mockImplementation(() => undefined);
|
setOutputSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
restoreCacheSpy = cache.restoreCache as jest.Mock;
|
restoreCacheSpy = jest.spyOn(cache, 'restoreCache');
|
||||||
(
|
restoreCacheSpy.mockImplementation(
|
||||||
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||||
).mockImplementation(
|
return primaryKey;
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
|
||||||
return Promise.resolve(primaryKey);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
whichSpy = io.which as jest.Mock;
|
whichSpy = jest.spyOn(io, 'which');
|
||||||
whichSpy.mockImplementation(() => '/path/to/python');
|
whichSpy.mockImplementation(() => '/path/to/python');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -212,13 +163,9 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
fileHash,
|
fileHash,
|
||||||
cachePaths
|
cachePaths
|
||||||
) => {
|
) => {
|
||||||
(
|
restoreCacheSpy.mockImplementation(
|
||||||
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||||
).mockImplementation(
|
return primaryKey.includes(fileHash) ? primaryKey : '';
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
|
||||||
return Promise.resolve(
|
|
||||||
primaryKey.includes(fileHash) ? primaryKey : ''
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -237,24 +184,19 @@ virtualenvs.path = "{cache-dir}/virtualenvs" # /Users/patrick/Library/Caches/py
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const restoredKeys = await Promise.all(
|
if (process.platform === 'linux' && packageManager === 'pip') {
|
||||||
restoreCacheSpy.mock.results.map(result => result.value)
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
);
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-20.04-Ubuntu-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||||
|
);
|
||||||
restoredKeys.forEach(restoredKey => {
|
} else if (packageManager === 'poetry') {
|
||||||
if (restoredKey) {
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
const osSegment =
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-python-${pythonVersion}-${packageManager}-v2-${fileHash}`
|
||||||
process.platform === 'linux' ? '-20.04-Ubuntu' : '';
|
);
|
||||||
const versionSuffix = packageManager === 'poetry' ? '-v2' : '';
|
} else {
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
expect(infoSpy).toHaveBeenCalledWith(
|
||||||
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-${process.arch}${osSegment}-python-${pythonVersion}-${packageManager}${versionSuffix}-${fileHash}`
|
`Cache restored from key: setup-python-${process.env['RUNNER_OS']}-python-${pythonVersion}-${packageManager}-${fileHash}`
|
||||||
);
|
);
|
||||||
} else {
|
}
|
||||||
expect(infoSpy).toHaveBeenCalledWith(
|
|
||||||
`${packageManager} cache is not found`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
30000
|
30000
|
||||||
);
|
);
|
||||||
@@ -337,13 +279,9 @@ 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(
|
||||||
restoreCacheSpy as jest.Mock<typeof cache.restoreCache>
|
(cachePaths: string[], primaryKey: string, restoreKey?: string) => {
|
||||||
).mockImplementation(
|
return primaryKey !== fileHash && restoreKey ? pipFileLockHash : '';
|
||||||
(cachePaths: string[], primaryKey: string, restoreKey?: string[]) => {
|
|
||||||
return Promise.resolve(
|
|
||||||
primaryKey !== fileHash && restoreKey ? pipFileLockHash : ''
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const cacheDistributor = getCacheDistributor(
|
const cacheDistributor = getCacheDistributor(
|
||||||
|
|||||||
+79
-143
@@ -1,61 +1,8 @@
|
|||||||
import {jest, describe, it, expect, beforeEach, afterEach} from '@jest/globals';
|
import * as core from '@actions/core';
|
||||||
import {fileURLToPath} from 'url';
|
import * as cache from '@actions/cache';
|
||||||
import path from 'path';
|
import * as exec from '@actions/exec';
|
||||||
|
import {run} from '../src/cache-save';
|
||||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
import {State} from '../src/cache-distributions/cache-distributor';
|
||||||
|
|
||||||
// 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 =
|
||||||
@@ -67,54 +14,53 @@ describe('run', () => {
|
|||||||
const poetryLockHash =
|
const poetryLockHash =
|
||||||
'571bf984f8d210e6a97f854e479fdd4a2b5af67b5fdac109ec337a0ea16e7836';
|
'571bf984f8d210e6a97f854e479fdd4a2b5af67b5fdac109ec337a0ea16e7836';
|
||||||
|
|
||||||
let infoSpy: jest.Mock;
|
// core spy
|
||||||
let warningSpy: jest.Mock;
|
let infoSpy: jest.SpyInstance;
|
||||||
let debugSpy: jest.Mock;
|
let warningSpy: jest.SpyInstance;
|
||||||
let saveStateSpy: jest.Mock;
|
let debugSpy: jest.SpyInstance;
|
||||||
let getStateSpy: jest.Mock;
|
let saveStateSpy: jest.SpyInstance;
|
||||||
let getInputSpy: jest.Mock;
|
let getStateSpy: jest.SpyInstance;
|
||||||
let setFailedSpy: jest.Mock;
|
let getInputSpy: jest.SpyInstance;
|
||||||
let saveCacheSpy: jest.Mock;
|
let setFailedSpy: jest.SpyInstance;
|
||||||
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 = core.info as jest.Mock;
|
infoSpy = jest.spyOn(core, 'info');
|
||||||
infoSpy.mockImplementation(() => undefined);
|
infoSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
warningSpy = core.warning as jest.Mock;
|
warningSpy = jest.spyOn(core, 'warning');
|
||||||
warningSpy.mockImplementation(() => undefined);
|
warningSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
debugSpy = core.debug as jest.Mock;
|
debugSpy = jest.spyOn(core, 'debug');
|
||||||
debugSpy.mockImplementation(() => undefined);
|
debugSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
saveStateSpy = core.saveState as jest.Mock;
|
saveStateSpy = jest.spyOn(core, 'saveState');
|
||||||
saveStateSpy.mockImplementation(() => undefined);
|
saveStateSpy.mockImplementation(input => undefined);
|
||||||
|
|
||||||
getStateSpy = core.getState as jest.Mock;
|
getStateSpy = jest.spyOn(core, 'getState');
|
||||||
(getStateSpy as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation(input => {
|
||||||
(input: string) => {
|
if (input === State.CACHE_PATHS) {
|
||||||
if (input === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
|
||||||
}
|
|
||||||
return requirementsHash;
|
|
||||||
}
|
}
|
||||||
);
|
return requirementsHash;
|
||||||
|
});
|
||||||
|
|
||||||
setFailedSpy = core.setFailed as jest.Mock;
|
setFailedSpy = jest.spyOn(core, 'setFailed');
|
||||||
|
|
||||||
getInputSpy = core.getInput as jest.Mock;
|
getInputSpy = jest.spyOn(core, 'getInput');
|
||||||
(getInputSpy as jest.Mock<typeof core.getInput>).mockImplementation(
|
getInputSpy.mockImplementation(input => inputs[input]);
|
||||||
(input: string) => inputs[input]
|
|
||||||
);
|
|
||||||
|
|
||||||
getExecOutputSpy = exec.getExecOutput as jest.Mock;
|
getExecOutputSpy = jest.spyOn(exec, 'getExecOutput');
|
||||||
(
|
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};
|
||||||
}
|
}
|
||||||
@@ -122,7 +68,7 @@ describe('run', () => {
|
|||||||
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
return {stdout: '', stderr: 'Error occured', exitCode: 2};
|
||||||
});
|
});
|
||||||
|
|
||||||
saveCacheSpy = cache.saveCache as jest.Mock;
|
saveCacheSpy = jest.spyOn(cache, 'saveCache');
|
||||||
saveCacheSpy.mockImplementation(() => undefined);
|
saveCacheSpy.mockImplementation(() => undefined);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -178,17 +124,15 @@ 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 as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation((name: string) => {
|
||||||
(name: string) => {
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
return requirementsHash;
|
||||||
return requirementsHash;
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
} else {
|
||||||
} else {
|
return pipFileLockHash;
|
||||||
return pipFileLockHash;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -207,17 +151,15 @@ 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 as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation((name: string) => {
|
||||||
(name: string) => {
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
return pipFileLockHash;
|
||||||
return pipFileLockHash;
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
} else {
|
||||||
} else {
|
return requirementsHash;
|
||||||
return requirementsHash;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -236,17 +178,15 @@ 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 as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation((name: string) => {
|
||||||
(name: string) => {
|
if (name === State.CACHE_MATCHED_KEY) {
|
||||||
if (name === State.CACHE_MATCHED_KEY) {
|
return poetryLockHash;
|
||||||
return poetryLockHash;
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
} else {
|
||||||
} else {
|
return requirementsHash;
|
||||||
return requirementsHash;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
||||||
await run();
|
await run();
|
||||||
|
|
||||||
@@ -265,17 +205,15 @@ 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 as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation((name: string) => {
|
||||||
(name: string) => {
|
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
return poetryLockHash;
|
||||||
return poetryLockHash;
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
} else {
|
||||||
} else {
|
return requirementsHash;
|
||||||
return requirementsHash;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
);
|
});
|
||||||
|
|
||||||
saveCacheSpy.mockImplementation(() => {
|
saveCacheSpy.mockImplementation(() => {
|
||||||
return -1;
|
return -1;
|
||||||
@@ -296,17 +234,15 @@ 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 as jest.Mock<typeof core.getState>).mockImplementation(
|
getStateSpy.mockImplementation((name: string) => {
|
||||||
(name: string) => {
|
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
||||||
if (name === State.STATE_CACHE_PRIMARY_KEY) {
|
return poetryLockHash;
|
||||||
return poetryLockHash;
|
} else if (name === State.CACHE_PATHS) {
|
||||||
} else if (name === State.CACHE_PATHS) {
|
return JSON.stringify([__dirname]);
|
||||||
return JSON.stringify([__dirname]);
|
} else {
|
||||||
} else {
|
return requirementsHash;
|
||||||
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.4.6"
|
numpy = "==1.25.1"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
|
|
||||||
|
|||||||
Generated
+28
-77
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "0060d5c4915f1f35aae1f3e9fa6de3f65d1a851e6e33ac57a04665d5d1c796fa"
|
"sha256": "dcea65dabfe8442466b5e9280ecab72cfa7bf555791ee0ad55b6e7255dca1f43"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
"sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"
|
"sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_full_version >= '3.8.1'",
|
|
||||||
"version": "==6.0.0"
|
"version": "==6.0.0"
|
||||||
},
|
},
|
||||||
"mccabe": {
|
"mccabe": {
|
||||||
@@ -35,82 +34,34 @@
|
|||||||
},
|
},
|
||||||
"numpy": {
|
"numpy": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:001fbb8e08d942dd57599e781f2472269ee7f2755fae407b4f67b2f0b17da3f1",
|
"sha256:012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe",
|
||||||
"sha256:0280e0356c0829a18d9de1cb7eee50ec22ca639878d7240307ca0943d73cd2c4",
|
"sha256:0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004",
|
||||||
"sha256:043191bfa8eab18c776647b62723ac9dddece59743b13f49b2016094129c2b3f",
|
"sha256:0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19",
|
||||||
"sha256:06ca2f61ec4385a07a6977c55ba998a4466c123642b4a32694d3128fce18c079",
|
"sha256:1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f",
|
||||||
"sha256:0a041d3d761dc3c35cc56ce0351506a02bcbc25f7b169f652435141a17db9096",
|
"sha256:1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631",
|
||||||
"sha256:0ab0a9c4ffb1a6d95ef519fe4247dba8eb6b18ad93999f76b7f657039acabd47",
|
"sha256:20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd",
|
||||||
"sha256:0c9136e14ed34a9e343a31c533d78a9813a69a3148332bce5e9821cb2f996e66",
|
"sha256:247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c",
|
||||||
"sha256:110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d",
|
"sha256:35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009",
|
||||||
"sha256:112b06a867b235ef466ed3508ddf0238050df9c727cafb5301ac385b899189a1",
|
"sha256:38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d",
|
||||||
"sha256:17f9ade344e7d9b464a084d69bcf18fc691cb1db67c62ed80820bf4926d78f0e",
|
"sha256:3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105",
|
||||||
"sha256:1e254a00cdf42b1e4d5b3d68d33af63268d41340d8885df2ab6470f2e1500147",
|
"sha256:41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09",
|
||||||
"sha256:1e978ec1e8bd0e0e4de6bb75de9d30cbb74db6b6a2bb727618613703ca0167dd",
|
"sha256:4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf",
|
||||||
"sha256:25c692919ac5a01f170a3bfcd62d745b24fd095c353d50812637d6fcab442e75",
|
"sha256:6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e",
|
||||||
"sha256:260a5d70215b61ab4fadf5c7baacd64821842975eea312125ed3c39a6391b063",
|
"sha256:6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588",
|
||||||
"sha256:2803abfebfc990042cd494d8ce2d5f82e9d847af6d35ec486923aa19dbad5e73",
|
"sha256:77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa",
|
||||||
"sha256:29a287e0cf63ff528da061de6b9f64a4618da591ca1046aafc54062e40ca7eab",
|
"sha256:791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb",
|
||||||
"sha256:29cb7f67d10b479ff07c17d33e39f78c07f71c40ef30d63c153d340e96cd3fb4",
|
"sha256:9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf",
|
||||||
"sha256:3213d622a0283a39a93d188f3cf72b26862df52fbb4ca3697f51705016523d41",
|
"sha256:c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57",
|
||||||
"sha256:33111801a01c12a8a1e3721f0a9232f8cfc8ae2c6b7098167e6f623c6073f402",
|
"sha256:c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171",
|
||||||
"sha256:357cc07a6d7b0b182ff02249616a03742827ebb1277546b5c7cd7f7620a45698",
|
"sha256:d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625",
|
||||||
"sha256:38efbc8de75c7a0fc1ac190162d892787f3f47b57cc291231aafee36b80982b7",
|
"sha256:d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6",
|
||||||
"sha256:4081eb135ac24158bd51cdfbef16f1c64df7063b1143f24731387137c092bec8",
|
"sha256:d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b",
|
||||||
"sha256:40fdc1ae7125e518ea98e53e69a4ebc27e1fd50510c47b7ea130cf21e5e1d42b",
|
"sha256:e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800",
|
||||||
"sha256:4cfe66903cc32a9921a6733d96b19bb6abf310397581bbad89c228f5abaf0ee8",
|
"sha256:f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7",
|
||||||
"sha256:511dbaf848decaaaf4b4ca48032619fb3138710c4bf7da7617765edad1ef96b0",
|
"sha256:fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503"
|
||||||
"sha256:55cced7c52e981362f708ad635198e97a752dfba412cc03c23bbf3bd8d5cd662",
|
|
||||||
"sha256:56b39e5e0622a09a25bf5baf62f4bcf0cb8a41ae6e2819cf49bbc5a74c083f91",
|
|
||||||
"sha256:5dbbdb29840ca3d91ee0fece42fc29278886d908280bfec0a5846c6f901a3eb0",
|
|
||||||
"sha256:5f9fb9157b4ce2971008323afe46053787b526ef624fea915b261468a8421a0f",
|
|
||||||
"sha256:6180d8b35af935aed8ece3a85e0a43f87393ae0ac87c8d2c8bd2c993f7270ef3",
|
|
||||||
"sha256:68a5124b13fa6cc2086764a20005d30bc0548146f7f5322f02fce212ca14317f",
|
|
||||||
"sha256:68bb27509ac1b9a3443094260f6326150663b06abe40b73a2f81160623da5b67",
|
|
||||||
"sha256:6f41ae150c4e32db4f3310cdaf64b1593a03dbabe29eec77fc9b50fe64061df6",
|
|
||||||
"sha256:7265a2f3d436e54ef9f2b52b5c937e6be778781bd97a590319d7348f1c1ca997",
|
|
||||||
"sha256:72fbe16c6fac95aedf5937fa873445cec2110be35d8a4e9433d7501fd98dae6b",
|
|
||||||
"sha256:7d92c3819208a60205a12a245c91ad70cb0a85336659b19b834205573ac8456e",
|
|
||||||
"sha256:8155154c7c691289fe18f510b5d4657c68c67989f293f0535a91360392ff6538",
|
|
||||||
"sha256:81a1cca95ed5bb92aa8b10dd2cdc9a0d3853a50fad926c28b5d7e8ea54389627",
|
|
||||||
"sha256:89cd468399cfd2504718f0ba50e410dca55a170b61a02ad92bb18c8a65186e93",
|
|
||||||
"sha256:8ad03c0965fb3c692200e74d458ca28c1dbb4ce96f9a479a8aa041ad5fabca02",
|
|
||||||
"sha256:90f9849678c75fe7afa2d348ac842c168b0a4d3d61919687216dfc547976d853",
|
|
||||||
"sha256:948424b06129ce883307e8cff868c31396d8dc7630a59c61d70d98dbe70f222c",
|
|
||||||
"sha256:9cd5ffd25db4e7ba6a375693b3fc0fc1791ec636c17db3720da19bde7180ec43",
|
|
||||||
"sha256:a0df0043bdb289bde1f62da130d20df23d58b45429f752bc7a8fc5325a225ecd",
|
|
||||||
"sha256:a2c306dea656c12c68f51f4cea133cbe78ca7435eb28c735eac1d3ebe73be6e8",
|
|
||||||
"sha256:a7830bab239b79cda9c08c2da014761cafb48da6150e1da17ac06283f43b6089",
|
|
||||||
"sha256:a7c711e21628b52034bb5ab8d1bce291f752fcc5e92accc615778acee1ff4778",
|
|
||||||
"sha256:aaf159caa35993cb1f56fb9b8e4610d35758e7ca005412eb1daa856a78c9c4b1",
|
|
||||||
"sha256:ae506e6902902557576a26ff33eda8695e7ecb3cb36c3b573a0765dee114ebdb",
|
|
||||||
"sha256:b507f5c4c1d508876d1819b6bf9a49d365b96320b5d4993426b33a23ca4b8261",
|
|
||||||
"sha256:bf162abab1c1a736333192707cef898e735a5ca00f38f27eeedf44b39d9e85eb",
|
|
||||||
"sha256:c1a2af6c6ef86344a6b0db6b97834208bf598db514f2b155042439b62605601a",
|
|
||||||
"sha256:c2d37ab77531417474168eb79d6d80b14f821a966818505d03013d0833edb7a8",
|
|
||||||
"sha256:c4fc99836233ea196540b17ab0983aff60ed07941751930f5f4d05bc3b3b7359",
|
|
||||||
"sha256:d581b735e177fdcdce6fed8e7e8880a3fb6ee4e3653a3ac6af01c6f4c03effc5",
|
|
||||||
"sha256:d6da64deb6b8ed903e7560180a92f2d804ee1ba5eeb849ac2748b8c1aba1f6d7",
|
|
||||||
"sha256:d8e8286dd7cea7895157318d1b91cdacac64c479f3cbc8dce548331728484751",
|
|
||||||
"sha256:ddea102b48f9e339f3948bf22040944184627a30fdf7f858667673b9c5f033c8",
|
|
||||||
"sha256:dfa20cc6ca228e6b155b11da03825975ce66aea520985dbbddf0f2a5a495c605",
|
|
||||||
"sha256:e3e5193ef5a3dc73bceee50f7fdc2c90dbb76c42df8d8fae3d1067a583df579e",
|
|
||||||
"sha256:e3eeb0aabd6bd5ce64faae67e9935203a6991b4bc2a485a767fbafb2c5125f45",
|
|
||||||
"sha256:e5805d5a22fd19c8ccff10a9561f9df94436b0545619ea579db2d3c35294bce2",
|
|
||||||
"sha256:e85b752a1e912b70eaad4fafbd4d1238007ab221de2009b9a2f5ae7461239895",
|
|
||||||
"sha256:eaf7fa2de5c0be8ae6ff8e9bea2ccd725e980541244521d8d4b5f3354a27babe",
|
|
||||||
"sha256:ebfb099f8dcf083deef3ac1ca4c1503f387cf76296fcb3816b66f5ecb5f54fdb",
|
|
||||||
"sha256:ece3d2cfe132e7d51f44a832b303895e6f2d499c5e74dfbdb06ee246147a304a",
|
|
||||||
"sha256:ed9749eef4cbd126da3dc1d6bcb3a57f5eb7ac6a6484146bdbf743f552dfc577",
|
|
||||||
"sha256:ede83e07a75dd06bc501566c1eca2afc0d61677c1472ac9ad93fdee6e638a48d",
|
|
||||||
"sha256:ef4aea96ce4d3b074422cb4f2f64e216bf9e213004bb58ecfdf50ea02ea8eb9a",
|
|
||||||
"sha256:f3a3570c4a2a16746ac2c31a7c7c7b0c186b95ce902e33db6f28094ed7387dda",
|
|
||||||
"sha256:f407cb6b8e9d6d8c626bc73c945db1706035af8fd632295547bf1c9e46d092d6",
|
|
||||||
"sha256:f74a575920ab21fe304421a3fc28793d82e299cae9eccb37084e9fc7f3617c20"
|
|
||||||
],
|
],
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"markers": "python_version >= '3.11'",
|
"version": "==1.25.1"
|
||||||
"version": "==2.4.6"
|
|
||||||
},
|
},
|
||||||
"pycodestyle": {
|
"pycodestyle": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
@@ -130,4 +81,4 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"develop": {}
|
"develop": {}
|
||||||
}
|
}
|
||||||
+868
-788
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,2 @@
|
|||||||
numpy==2.2.4
|
numpy==1.22.3
|
||||||
flake8==6.0.0
|
flake8==6.0.0
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user