diff --git a/.github/workflows/.coveragerc b/.github/workflows/.coveragerc new file mode 100644 index 0000000..f396e78 --- /dev/null +++ b/.github/workflows/.coveragerc @@ -0,0 +1,2 @@ +[run] +relative_files = True diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..afb0254 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: pynmea2 +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python: ["3"] + os: ["ubuntu-latest"] + include: + - {python: "3.8", os: "ubuntu-22.04"} + - {python: "3.9", os: "ubuntu-22.04"} + - {python: "3.10", os: "ubuntu-22.04"} + - {python: "3.11", os: "ubuntu-22.04"} + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install pytest + python -m pip install flake8 + python -m pip install importlib_metadata + - name: Lint 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 + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=80 --statistics + - name: Build and test + run: | + python setup.py sdist --formats=zip + pip install dist/pynmea2*.zip + pytest + - name: Coveralls + env: + COVERAGE_RCFILE: ".github/workflows/.coveragerc" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + python -m pip install "coverage" + python -m pip install "coveralls" + coverage run --source=pynmea2 -m pytest + python -m coveralls --service=github || true diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 639892c..0000000 --- a/.travis.yml +++ /dev/null @@ -1,33 +0,0 @@ -language: python - -python: - - "2.7" - - "3.4" - - "3.5" - - "3.6" - - "3.7" - - "3.8" - - "3.9" - - "3.10-dev" - - "pypy" - - "pypy3" - -# command to install dependencies, e.g. pip install -r requirements.txt --use-mirrors -install: - - pip install pip --upgrade - - pip install importlib_metadata --upgrade # fix for broken py3.7 - - pip install pytest --upgrade - # - pip install pylint --upgrade - -# command to run tests, e.g. python setup.py test -script: - - python setup.py sdist --formats=zip - - pip install dist/pynmea2*.zip - - py.test - # - pylint -E pynmea2 ## pylint is not backwards compatible with itself - -after_success: - - pip install coveralls coverage - - PYTHONPATH=. coverage run --source=pynmea2 -m pytest - - coverage report - - coveralls diff --git a/README.md b/README.md index 310fcb2..06f922d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The `pynmea2` homepage is located at http://github.com/Knio/pynmea2 `pynmea2` is compatable with Python 2.7 and Python 3.4+ ![Python version](https://img.shields.io/pypi/pyversions/pynmea2.svg?style=flat) -[![Build Status](https://www.travis-ci.com/Knio/pynmea2.svg?branch=master)](https://www.travis-ci.com/Knio/pynmea2) +[![Build status](https://github.com/Knio/pynmea2/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/Knio/pynmea2/actions/workflows/ci.yml?query=branch%3Amaster+) [![Coverage status](https://img.shields.io/coveralls/github/Knio/pynmea2/master.svg?style=flat)](https://coveralls.io/r/Knio/pynmea2?branch=master) ### Installation