diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml new file mode 100644 index 000000000..3a5240018 --- /dev/null +++ b/.github/workflows/python-app.yml @@ -0,0 +1,59 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: pysaml2 + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + python-version: + - '3.6' + - '3.7' + - '3.8' + - '3.9' + - '3.10-dev' + - 'pypy3' + mongodb-version: + - '4.4' + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install system dependencies + run: | + sudo apt-get update && sudo apt-get install xmlsec1 + python -m pip install --upgrade pip tox rstcheck setuptools codecov pytest-cov flake8 + - name: Install python dependencies + run: | + python -m pip install --upgrade pip + if [ -f tests/test-requirements.txt ]; then pip install -r tests/test-requirements.txt; fi + python setup.py install + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 ./src --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 ./src --count --exit-zero --statistics + + - name: Start MongoDB + uses: supercharge/mongodb-github-action@1.6.0 + with: + mongodb-version: ${{ matrix.mongodb-version }} + + - name: PySAML2 tests + run: | + pytest --cov=saml2 tests diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b9aae06fc..000000000 --- a/.travis.yml +++ /dev/null @@ -1,102 +0,0 @@ -os: linux -dist: bionic -language: python - -services: - - mongodb - -before_install: - - sudo apt-get install -y xmlsec1 - -install: - - pip install tox - - pip install tox-travis - -script: - - tox - -jobs: - allow_failures: - - python: 3.10-dev - - python: pypy3 - include: - - python: 3.6 - - python: 3.7 - - python: 3.8 - - python: 3.9 - - python: 3.10-dev - - python: pypy3 - - - stage: Expose env-var information - script: | - cat <VERSION - deploy: - - provider: pypi - distributions: sdist bdist_wheel - server: "https://test.pypi.org/legacy/" - skip_cleanup: true - username: "__token__" - password: "$PYPI_PRE_RELEASE_TOKEN" - on: - repo: IdentityPython/pysaml2 - - - stage: Deploy new release on PyPI - if: type = push AND tag IS present - before_install: skip - install: skip - script: skip - deploy: - - provider: pypi - distributions: sdist bdist_wheel - username: "__token__" - password: "$PYPI_RELEASE_TOKEN" - on: - repo: IdentityPython/pysaml2 - tags: true - - - stage: Deploy new release on GitHub - if: type = push AND tag IS present - before_install: skip - install: skip - script: skip - deploy: - - provider: releases - token: "$GITHUB_RELEASE_TOKEN" - on: - repo: IdentityPython/pysaml2 - tags: true