Package topology data #342
Workflow file for this run
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
# Install Python dependencies, run tests and lint. | |
# | |
# For more information see: | |
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Test | |
on: | |
push: | |
branches: [ "main", "develop" ] | |
pull_request: | |
branches: [ "main", "develop" ] | |
permissions: | |
contents: read | |
jobs: | |
test: | |
runs-on: | |
- ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
# See https://github.com/marketplace/actions/setup-python | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' # caching pip dependencies | |
cache-dependency-path: setup.cfg | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 pep8-naming wheel coveralls | |
if [ -f requirements.txt ]; then pip install --prefer-binary -r requirements.txt; fi | |
# See https://docs.github.com/en/enterprise-cloud@latest/actions/using-github-hosted-runners/customizing-github-hosted-runners | |
- name: Install libgraphviz-dev | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install libgraphviz-dev | |
- name: Run some basic checks with flake8 | |
run: | | |
# Stop the build if there are Python syntax errors or undefined names. | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
- name: Check against PEP8 naming conventions | |
run: | | |
# This needs pep8-naming, installed above | |
flake8 . --count --select=N8 --show-source --statistics | |
- name: Run complexity checks with flake8 | |
run: | | |
# Note that `--exit-zero` treats all errors as warnings. | |
# Code that is too complex is not considered an error, for | |
# now. | |
flake8 . --count --exit-zero --max-complexity=10 | |
- name: Run tests | |
run: | | |
# Install package so that tests can be run. | |
pip install .[test,pygraphviz] | |
# Run tests and collect coverage data. | |
python -m pytest | |
- name: Send coverage data to coveralls.io | |
run: | | |
python -m coveralls --service=github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: ${{ matrix.python-version }} | |
COVERALLS_PARALLEL: true | |
finalize: | |
name: finalize | |
needs: test | |
runs-on: ubuntu-latest | |
container: python:3-slim | |
steps: | |
- name: Indicate completion to coveralls.io | |
run: | | |
pip --no-cache-dir install --upgrade coveralls | |
python -m coveralls --service=github --finish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |