diff options
-rw-r--r-- | .github/workflows/pythonpackage.yml | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml new file mode 100644 index 00000000..3b7d348c --- /dev/null +++ b/.github/workflows/pythonpackage.yml @@ -0,0 +1,62 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.4, 3.5, 3.6, 3.7, 3.8, nightly] + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 9999 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies and prepare tests + run: | + python -m pip install --upgrade pip + python --version; git --version + git submodule update --init --recursive + git fetch --tags + + pip install -r test-requirements.txt + ./init-tests-after-clone.sh + + git config --global user.email "travis@ci.com" + git config --global user.name "Travis Runner" + # If we rewrite the user's config by accident, we will mess it up + # and cause subsequent tests to fail + cat git/test/fixtures/.gitconfig >> ~/.gitconfig + - name: Lint with flake8 + run: | + pip install flake8 + # stop the build if there are Python syntax errors or undefined names + flake8 --ignore=W293,E265,E266,W503,W504,E731 --count --show-source --statistics + - name: Coverage + run: | + pip install codecov + ulimit -n 128 + ulimit -n + coverage run --omit="git/test/*" -m unittest --buffer + coverage report + - name: Documentation + run: | + pip install -r doc/requirements.txt + make -C doc html + - name: Test with pytest + run: | + pip install pytest + pytest |