Skip to content

Expand the pipenv resolver to be more customizable for what python version is specified and how markers should evaluate. #3029

Expand the pipenv resolver to be more customizable for what python version is specified and how markers should evaluate.

Expand the pipenv resolver to be more customizable for what python version is specified and how markers should evaluate. #3029

Workflow file for this run

name: CI
concurrency:
group: >-
${{ github.workflow }}-
${{ github.ref_type }}-
${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
on:
workflow_dispatch:
inputs:
git-ref:
description: Git Ref (Optional)
required: false
push:
paths-ignore:
- ".editorconfig"
- ".gitattributes"
- ".gitignore"
- ".gitmodules"
- "*.ini"
- "*.md"
- "**/*.txt"
- "examples/**"
- "news/**"
- "peeps/**"
branches:
- main
pull_request:
paths-ignore:
- ".editorconfig"
- ".gitattributes"
- ".gitignore"
- ".gitmodules"
- "*.ini"
- "*.md"
- "**/*.txt"
- "examples/**"
- "news/**"
- "peeps/**"
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
lint:
name: Check code linting
runs-on: ubuntu-latest
env:
PIPENV_DEFAULT_PYTHON_VERSION: ${{ matrix.python-version }}
PYTHONWARNINGS: ignore:DEPRECATION
PYTHONIOENCODING: "utf-8"
GIT_ASK_YESNO: "false"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: |
python -m pip install pre-commit
pre-commit run --all-files --verbose --show-diff-on-failure
vendor:
name: Vendoring
needs: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: |
python -m pip install --upgrade wheel invoke parver beautifulsoup4 towncrier requests parse hatch-fancy-pypi-readme
python -m invoke vendoring.update
tests:
name: ${{matrix.os}} / ${{ matrix.python-version }}
needs: lint
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.9, "3.10", 3.11] # 3.12 has issues with windows hanging indefinitely at present
os: [MacOS, Ubuntu, Windows]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Get python path
id: python-path
run: |
echo "path=$(python -c 'import sys; print(sys.executable)')" >> $GITHUB_OUTPUT
- name: Install latest pip, setuptools, wheel
run: |
python -m pip install --upgrade pip setuptools wheel
- name: Install dependencies
env:
PIPENV_DEFAULT_PYTHON_VERSION: ${{ matrix.python-version }}
PYTHONWARNINGS: ignore:DEPRECATION
PYTHONIOENCODING: "utf-8"
GIT_ASK_YESNO: "false"
run: |
git submodule sync
git submodule update --init --recursive
python -m pip install -e . --upgrade
pipenv install --deploy --dev --python=${{ steps.python-path.outputs.path }}
- name: Run pypiserver Windows
run: |
cmd /c start pipenv run pypi-server run -v --host=0.0.0.0 --port=8080 --hash-algo=sha256 --disable-fallback ./tests/pypi/ ./tests/fixtures
if: ${{matrix.os == 'Windows' }}
- name: Run pypiserver Mac
run: |
pipenv run pypi-server run -v --host=0.0.0.0 --port=8080 --hash-algo=sha256 --disable-fallback ./tests/pypi/ ./tests/fixtures &
if: ${{matrix.os == 'MacOS' }}
- name: Run pypiserver Ubuntu
run: |
pipenv run pypi-server run -v --host=0.0.0.0 --port=8080 --hash-algo=sha256 --disable-fallback ./tests/pypi/ ./tests/fixtures &
if: ${{matrix.os == 'Ubuntu' }}
- name: Run tests
env:
PIPENV_DEFAULT_PYTHON_VERSION: ${{ matrix.python-version }}
PYTHONWARNINGS: ignore:DEPRECATION
PIPENV_NOSPIN: "1"
CI: "1"
GIT_ASK_YESNO: "false"
PYPI_VENDOR_DIR: "./tests/pypi/"
PYTHONIOENCODING: "utf-8"
GIT_SSH_COMMAND: ssh -o StrictHostKeyChecking=accept-new -o CheckHostIP=no
run: |
pipenv run pytest -ra -n auto -v --fulltrace tests
build:
name: Build Package
needs: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: pip install -U build twine
- run: |
python -m build
twine check dist/*