From 75d8ac3b17dff161b5b914a2ea3ef3fa9ba31fdc Mon Sep 17 00:00:00 2001 From: Giuseppe Date: Tue, 3 Aug 2021 10:07:31 +0200 Subject: [PATCH 1/2] chore: pypi CD with gh actions --- .github/workflows/pypi.yml | 65 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/pypi.yml diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml new file mode 100644 index 000000000..5a6c25c06 --- /dev/null +++ b/.github/workflows/pypi.yml @@ -0,0 +1,65 @@ +name: Publish to PyPI and TestPyPI + +on: + release: + types: + - published + +jobs: + check_secrets: + name: Check secrets + runs-on: ubuntu-latest + outputs: + ALL: ${{ steps.pypi_api_token.outputs.is_set && steps.test_pypi_api_token.outputs.is_set }} + PYPI_API_TOKEN: ${{ steps.pypi_api_token.outputs.is_set }} + TEST_PYPI_API_TOKEN: ${{ steps.test_pypi_api_token.outputs.is_set }} + steps: + - + name: Check PYPI_API_TOKEN + id: pypi_api_token + run: | + echo "is_set: ${{ secrets.PYPI_API_TOKEN != '' }}" + echo "::set-output name=is_set::${{ secrets.PYPI_API_TOKEN != '' }}" + - + name: Check TEST_PYPI_API_TOKEN + id: test_pypi_api_token + run: | + echo "is_set: ${{ secrets.TEST_PYPI_API_TOKEN != '' }}" + echo "::set-output name=is_set::${{ secrets.TEST_PYPI_API_TOKEN != '' }}" + build_and_publish: + name: Build and publish + runs-on: ubuntu-latest + needs: + - check_secrets + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + architecture: x64 + - + name: Build binary wheel and source tarball + run: | + python -m pip install wheel packaging + python setup.py sdist bdist_wheel + - + if: ${{ needs.check_secrets.outputs.TEST_PYPI_API_TOKEN == 'true' && github.event.release.prerelease }} + name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages_dir: ./dist/ + password: ${{ secrets.TEST_PYPI_API_TOKEN }} + repository_url: https://test.pypi.org/legacy/ + verbose: true + - + if: ${{ needs.check_secrets.outputs.PYPI_API_TOKEN == 'true' && !github.event.release.prerelease }} + name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + packages_dir: ./dist/ + password: ${{ secrets.PYPI_API_TOKEN }} + verbose: true From c47ef3c5611f1448739ca30461f783cae4f104b6 Mon Sep 17 00:00:00 2001 From: Giuseppe Date: Tue, 3 Aug 2021 10:23:15 +0200 Subject: [PATCH 2/2] chore: CI with gh actions --- .github/workflows/python-app.yml | 59 ++++++++++++++++++ .travis.yml | 102 ------------------------------- 2 files changed, 59 insertions(+), 102 deletions(-) create mode 100644 .github/workflows/python-app.yml delete mode 100644 .travis.yml 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