diff --git a/.drone.jsonnet b/.drone.jsonnet new file mode 100644 index 0000000..cfeb257 --- /dev/null +++ b/.drone.jsonnet @@ -0,0 +1,76 @@ +/* +Code to generate the .drone.yaml. Use the command: + +drone jsonnet --stream --format yaml +*/ + + +local PYTHON_VERSIONS = ["3.8", "3.9"]; + + +local BuildAndTestPipeline(name, image) = { + kind: "pipeline", + type: "docker", + name: name, + steps: [ + { + name: "Install package and test", + image: image, + commands: [ + "echo Install package", + "pip install -U setuptools wheel pip; pip install .", + "echo Test to import module of package", + "python -c \"import importlib, setuptools; [print(importlib.import_module(package).__name__, '[OK]') for package in setuptools.find_packages() if package.startswith('aiohttp_pydantic.') or package == 'aiohttp_pydantic']\"", + "echo Install CI dependencies", + "pip install -r requirements/ci.txt", + "echo Launch unittest", + "pytest --cov-report=xml --cov=aiohttp_pydantic tests/", + "echo Check the README.rst render", + "python -m readme_renderer -o /dev/null README.rst" + ] + }, + { + name: "coverage", + image: "plugins/codecov", + settings: { + token: "9ea10e04-a71a-4eea-9dcc-8eaabe1479e2", + files: ["coverage.xml"] + } + } + ], + trigger: { + event: ["push", "tag"] + } +}; + + +[ + BuildAndTestPipeline("python-" + std.strReplace(pythonVersion, '.', '-'), + "python:" + pythonVersion) + for pythonVersion in PYTHON_VERSIONS +] + [ + { + kind: "pipeline", + type: "docker", + name: "Deploy on Pypi", + steps: [ + { + name: "Deploy on Pypi", + image: "plugins/pypi", + settings: { + username: { + from_secret: 'pypi_username' + }, + password: { + from_secret: 'pypi_password' + } + }, + distributions: 'bdist_wheel' + }, + ], + trigger: { + event: ["tag"] + }, + depends_on: ["python-" + std.strReplace(pythonVersion, '.', '-') for pythonVersion in PYTHON_VERSIONS] + } +] diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..22c1581 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,99 @@ +--- +kind: pipeline +type: docker +name: python-3-8 + +platform: + os: linux + arch: amd64 + +steps: +- name: Install package and test + image: python:3.8 + commands: + - echo Install package + - pip install -U setuptools wheel pip; pip install . + - echo Test to import module of package + - python -c "import importlib, setuptools; [print(importlib.import_module(package).__name__, '[OK]') for package in setuptools.find_packages() if package.startswith('aiohttp_pydantic.') or package == 'aiohttp_pydantic']" + - echo Install CI dependencies + - pip install -r requirements/ci.txt + - echo Launch unittest + - pytest --cov-report=xml --cov=aiohttp_pydantic tests/ + - echo Check the README.rst render + - python -m readme_renderer -o /dev/null README.rst + +- name: coverage + image: plugins/codecov + settings: + files: + - coverage.xml + token: 9ea10e04-a71a-4eea-9dcc-8eaabe1479e2 + +trigger: + event: + - push + - tag + +--- +kind: pipeline +type: docker +name: python-3-9 + +platform: + os: linux + arch: amd64 + +steps: +- name: Install package and test + image: python:3.9 + commands: + - echo Install package + - pip install -U setuptools wheel pip; pip install . + - echo Test to import module of package + - python -c "import importlib, setuptools; [print(importlib.import_module(package).__name__, '[OK]') for package in setuptools.find_packages() if package.startswith('aiohttp_pydantic.') or package == 'aiohttp_pydantic']" + - echo Install CI dependencies + - pip install -r requirements/ci.txt + - echo Launch unittest + - pytest --cov-report=xml --cov=aiohttp_pydantic tests/ + - echo Check the README.rst render + - python -m readme_renderer -o /dev/null README.rst + +- name: coverage + image: plugins/codecov + settings: + files: + - coverage.xml + token: 9ea10e04-a71a-4eea-9dcc-8eaabe1479e2 + +trigger: + event: + - push + - tag + +--- +kind: pipeline +type: docker +name: Deploy on Pypi + +platform: + os: linux + arch: amd64 + +steps: +- name: Deploy on Pypi + image: plugins/pypi + settings: + password: + from_secret: pypi_password + username: + from_secret: pypi_username + +trigger: + event: + - tag + +depends_on: +- python-3-8 +- python-3-9 + +... diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f32b871..0000000 --- a/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -language: python -python: -- '3.8' -script: -- pytest --cov-report=xml --cov=aiohttp_pydantic tests/ -- sh -c 'python -m readme_renderer README.rst > /dev/null' -install: -- pip install -U setuptools wheel pip -- pip install -r requirements/test.txt -- pip install -r requirements/ci.txt -- pip install . -after_success: - - codecov -deploy: - provider: pypi - twine_check: true - username: __token__ - password: - secure: ki81Limjj8UgsX1GNpOF2+vYjc6GEPY1V9BbJkQl+5WVTynqKTDEi+jekx8Id0jYEGGQ8/PfTiXe7dY/MqfQ0oWQ5+UNmGZIQJwYCft4FJWrI5QoL1LE0tqKpXCzBX7rGr1BOdvToS9zwf3RDr1u7ib16V/xakX55raVpQ37ttE0cKEPzvq6MqZTfYvq0VnhPmTDbTDBd9krHHAAG5lVhm9oAbp9TkhKsWDuA+wGzgKt2tuPX6+Le4op/wiiBhAnhvcVzjDWaX8dxd3Ac0XlnPtl8EMe5lJJez/ahGedydwGDJC75TOl1b7WP9AqogvNISVN+2VYUVxkgoK9yC9zEjhCSWKHSz+t8ZddB+itYHvj9lMf04iObq8OSUcD71R4rASWMZ89YdksWb6qvD+md1oEl/M6JSyZAkv+aedFL5iyKS4oJpZT3fYYloUqhF3/aDVgC3mlnXVsxC2cCIdpvu2EVjpFqFJ+9qGpp3ZlhRfDkjbQA0IA6KXKaWkIadQouJ4Wr1WtXjN4w0QlAvGV/q3m4bQ3ZZGxYipS9MQwDnUoRYtrX6j7bsaXjBdfhPNlwzgHQDPbD//oX9ZI1Oe6+kT/WKQvBrtvftv+TUhQ49uePHn5o/eYAKh35IwYTBxLgk2t483k0ZI5cjVXd2zGRgAxPdB/XyGW84dJGPJNn8o= - distributions: "bdist_wheel" - on: - tags: true - branch: main - python: '3.8' diff --git a/README.rst b/README.rst index 4e25f2e..b30ab07 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,9 @@ Aiohttp pydantic - Aiohttp View to validate and parse request ============================================================= -.. image:: https://travis-ci.org/Maillol/aiohttp-pydantic.svg?branch=main - :target: https://travis-ci.org/Maillol/aiohttp-pydantic +.. image:: https://cloud.drone.io/api/badges/Maillol/aiohttp-pydantic/status.svg + :target: https://cloud.drone.io/Maillol/aiohttp-pydantic + :alt: Build status for master branch .. image:: https://img.shields.io/pypi/v/aiohttp-pydantic :target: https://img.shields.io/pypi/v/aiohttp-pydantic diff --git a/requirements/ci.txt b/requirements/ci.txt index 3380aa6..30b16b6 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,8 +1,28 @@ -certifi==2020.11.8 +aiohttp==3.7.3 +async-timeout==3.0.1 +attrs==21.2.0 +bleach==3.3.0 +certifi==2021.5.30 chardet==3.0.4 -codecov==2.1.10 -coverage==5.3 +codecov==2.1.11 +coverage==5.5 +docutils==0.17.1 idna==2.10 -readme-renderer==26.0 -requests==2.25.0 -urllib3==1.26.2 +iniconfig==1.1.1 +multidict==5.1.0 +packaging==21.0 +pluggy==0.13.1 +py==1.10.0 +Pygments==2.9.0 +pyparsing==2.4.7 +pytest==6.1.2 +pytest-aiohttp==0.3.0 +pytest-cov==2.10.1 +readme-renderer==29.0 +requests==2.25.1 +six==1.16.0 +toml==0.10.2 +typing-extensions==3.10.0.0 +urllib3==1.26.6 +webencodings==0.5.1 +yarl==1.6.3 \ No newline at end of file diff --git a/requirements/test.txt b/requirements/test.txt index 85a1222..cd9319c 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,13 +1,13 @@ -attrs==20.3.0 -coverage==5.3 +attrs-21.2.0 +coverage-5.5 iniconfig==1.1.1 -packaging==20.4 +packaging==21.0 pluggy==0.13.1 -py==1.9.0 +py==1.10.0 pyparsing==2.4.7 -pytest==6.1.2 +pytest==6.2.4 pytest-aiohttp==0.3.0 -pytest-cov==2.10.1 +pytest-cov-2.12.1 pyyaml==5.3.1 six==1.15.0 toml==0.10.2 diff --git a/setup.cfg b/setup.cfg index f9d9c96..f6377a4 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,7 @@ install_requires = [options.extras_require] test = pytest==6.1.2; pytest-aiohttp==0.3.0; pytest-cov==2.10.1 -ci = pytest==6.1.2; pytest-aiohttp==0.3.0; pytest-cov==2.10.1; codecov==2.1.10; readme-renderer==26.0 +ci = pytest==6.1.2; pytest-aiohttp==0.3.0; pytest-cov==2.10.1; codecov==2.1.11; readme-renderer==29.0 [options.packages.find] exclude =