From e7571ea033a8133d6c344ec5fbc3cfe8c33d9573 Mon Sep 17 00:00:00 2001 From: Alan Barzilay Date: Fri, 3 Sep 2021 20:47:51 -0300 Subject: [PATCH] Add tox tests & codecov github action This commit essentially adds back tests to our CI pipeline. They were previously dropped due to Travis pricing policy change. This workflow utilizes a few interesting projects to make this action easier to maintain such as the codecov github action and the tox-gh-actions project (https://github.com/ymyzk/tox-gh-actions) This commit uses codecov instead of coveralls because using coveralls directly inside GH-actions is buggy and the official coveralls action only supports lcov reports which we can't seem to be able to generate at the moment. For more information see the pull request that introduced this commit --- .github/workflows/tests.yml | 50 +++++++++++++++++++++++++++++++++++++ README.rst | 5 ++-- tox.ini | 8 ++++++ 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..288065e --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,50 @@ +name: Tests and Codecov +on: pull_request +jobs: + run_tests: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [3.6, 3.7, 3.8, 3.9, pypy-3.7] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox tox-gh-actions + + - name: Test with tox + run: tox + + coverage_report: + needs: run_tests + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install coverage docopt yarg requests + + - name: Calculate coverage + run: coverage run --source=pipreqs -m unittest discover + + - name: Create XML report + run: coverage xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v2 + with: + files: coverage.xml + fail_ci_if_error: true diff --git a/README.rst b/README.rst index fd4b363..68411fc 100644 --- a/README.rst +++ b/README.rst @@ -10,9 +10,8 @@ :target: https://pypi.python.org/pypi/pipreqs -.. image:: https://img.shields.io/coveralls/bndr/pipreqs.svg - :target: https://coveralls.io/r/bndr/pipreqs - +.. image:: https://codecov.io/gh/bndr/pipreqs/branch/master/graph/badge.svg?token=0rfPfUZEAX + :target: https://codecov.io/gh/bndr/pipreqs .. image:: https://img.shields.io/pypi/l/pipreqs.svg :target: https://pypi.python.org/pypi/pipreqs diff --git a/tox.ini b/tox.ini index 6d7a99a..cf5c2c2 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,14 @@ [tox] envlist = py36, py37, py38, py39, pypy3, flake8 +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + pypy-3.7: pypy3 + [testenv] setenv = PYTHONPATH = {toxinidir}:{toxinidir}/pipreqs