Merge pull request #3138 from Unidata/dependabot-pip-ci-ruff-0.0.282 #3724
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PyPI Tests | |
# We don't want pushes (or PRs) to gh-pages to kick anything off | |
on: | |
push: | |
branches: | |
- main | |
- '[0-9]+.[0-9]+.x' | |
pull_request: | |
branches: | |
- main | |
- '[0-9]+.[0-9]+.x' | |
concurrency: | |
group: ${{ github.workflow}}-${{ github.head_ref }} | |
cancel-in-progress: true | |
jobs: | |
# | |
# Run all tests on Linux using standard PyPI packages, including minimum requirements | |
# | |
PyPITests: | |
name: ${{ matrix.python-version }} ${{ matrix.dep-versions }} ${{ matrix.no-extras }} | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [3.9, '3.10', 3.11] | |
dep-versions: [requirements.txt] | |
no-extras: [''] | |
include: | |
- python-version: 3.9 | |
dep-versions: Minimum | |
no-extras: 'No Extras' | |
- python-version: 3.11 | |
dep-versions: requirements.txt | |
no-extras: 'No Extras' | |
steps: | |
# We check out only a limited depth and then pull tags to save time | |
- name: Checkout source | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 100 | |
- name: Get tags | |
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
- name: Generate minimum dependencies | |
if: ${{ matrix.dep-versions == 'Minimum' }} | |
run: | | |
pip install tomli | |
python << EOF | |
import tomli as tomllib | |
from pathlib import Path | |
# Read our pyproject.toml | |
config = tomllib.load(open('pyproject.toml', 'rb')) | |
# Generate a Minimum dependency file | |
with (Path('ci') / 'Minimum').open('wt') as out: | |
for dep in config['project']['dependencies']: | |
if dep: | |
dep = dep.split(';')[0] | |
out.write(dep.replace('>=', '==') + '\n') | |
EOF | |
- name: Install from PyPI | |
uses: ./.github/actions/install-pypi | |
with: | |
need-cartopy: ${{ matrix.no-extras != 'No Extras' }} | |
type: 'test' | |
version-file: ${{ matrix.dep-versions }} | |
python-version: ${{ matrix.python-version }} | |
- name: Run tests | |
uses: ./.github/actions/run-tests | |
with: | |
run-doctests: ${{ matrix.dep-versions == 'requirements.txt' && matrix.no-extras != 'No Extras' }} | |
key: pypi-${{ matrix.python-version }}-${{ matrix.dep-versions }}-${{ matrix.no-extras }}-${{ runner.os }} |