Skip to content

Tests

Tests #420

Workflow file for this run

---
# 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