Tests #423
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
--- | |
# Useful walk-throughs... | |
# https://www.jeffgeerling.com/blog/2020/travis-cis-new-pricing-plan-threw-wrench-my-open-source-works | |
# https://blog.dennisokeeffe.com/blog/2021-08-08-pytest-with-github-actions | |
# Thanks to Pallets/flask for a useful test.yaml template... | |
# https://github.com/pallets/flask/blob/main/.github/workflows/tests.yaml | |
# | |
name: Tests | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- 'sphinx-doc/**' | |
- '*.md' | |
- '*.rst' | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- 'sphinx-doc/**' | |
- '*.md' | |
- '*.rst' | |
schedule: | |
# Schedule test runs at 3:42 UTC every Saturday | |
- cron: "42 3 * * 6" | |
workflow_dispatch: | |
workflow: "*" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }} | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
env: | |
PY_COLORS: 1 | |
FORCE_COLOR: 1 | |
# Basic reference: | |
# https://github.com/pallets/flask/blob/main/.github/workflows/tests.yaml | |
# Advanced reference: | |
# https://github.com/matplotlib/matplotlib/blob/main/.github/workflows/tests.yml | |
jobs: | |
tests: | |
name: "Test ccp with Py ${{ matrix.python }} on ${{ matrix.os }}" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {name: '3.11', python: '3.11', os: 'ubuntu-latest', pytest: 'py311'} | |
- {name: 'Mac_py310', python: '3.10', os: 'macos-latest', pytest: 'py310'} | |
- {name: 'Linux_py310', python: '3.10', os: 'ubuntu-latest', pytest: 'py310'} | |
- {name: '3.9', python: '3.9', os: 'ubuntu-latest', pytest: 'py39'} | |
- {name: '3.8', python: '3.8', os: 'ubuntu-latest', pytest: 'py38'} | |
- {name: '3.7', python: '3.7', os: 'ubuntu-latest', pytest: 'py37'} | |
- {name: 'PyPy-3.9', python: 'pypy-3.9', os: 'ubuntu-latest', pytest: 'pypy39'} | |
- {name: 'PyPy-3.8', python: 'pypy-3.8', os: 'ubuntu-latest', pytest: 'pypy38'} | |
- {name: 'PyPy-3.7', python: 'pypy-3.7', os: 'ubuntu-latest', pytest: 'pypy37'} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set required github workflow python version (version:3.10) | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- name: Update setuptools / wheel / pip versions | |
run: | | |
python -m pip install -U setuptools wheel pip | |
- name: Update poetry package versions | |
run: | | |
pip install -U poetry | |
pip install -U poetry-core | |
- name: Install pytest for ciscoconfparse | |
run: | | |
pip install -U pytest | |
- name: Install all ciscoconfparse package requirements | |
run: | | |
pip install -U black | |
pip install -U -r requirements.txt | |
- name: Set up ciscoconfparse Python dependencies | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
#cache: pip | |
#cache-dependency-path: 'requirements*.txt' | |
- name: Catch install problems such as pyproject.toml doesn't require auto-dependency installs (ref https://github.com/mpenning/ciscoconfparse/issues/254) | |
run: | | |
pip uninstall -y passlib dnspython loguru | |
pip install . | |
- name: Run unit-tests | |
run: make test |