diff --git a/.travis.yml b/.travis.yml index 169d8496..7e1c2980 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,43 +1,96 @@ -os: - linux -dist: - xenial -language: - python -install: - - pip install tox -script: - - tox +os: linux +dist: xenial +language: python jobs: include: - python: 3.6 env: TOXENV=coveralls DEPENDENCY_INJECTOR_DEBUG_MODE=1 install: - - pip install tox - - pip install cython - - make cythonize + - pip install tox + - pip install cython + - make cythonize + script: tox - python: 3.6 env: TOXENV=pylint + install: pip install tox + script: tox - python: 3.6 env: TOXENV=flake8 + install: pip install tox + script: tox - python: 3.6 env: TOXENV=pydocstyle + install: pip install tox + script: tox - python: 2.7 env: TOXENV=py27 + install: pip install tox + script: tox - python: 3.4 env: TOXENV=py34 + install: pip install tox + script: tox - python: 3.5 env: TOXENV=py35 + install: pip install tox + script: tox - python: 3.6 env: TOXENV=py36 + install: pip install tox + script: tox - python: 3.7 env: TOXENV=py37 + install: pip install tox + script: tox - python: 3.8 env: TOXENV=py38 + install: pip install tox + script: tox - python: pypy env: TOXENV=pypy + install: pip install tox + script: tox - python: pypy3 env: TOXENV=pypy3 + install: pip install tox + script: tox + - python: 3.8 + if: tag IS present + env: TWINE_USERNAME=__token__ + install: pip install pip --upgrade + script: python setup.py sdist + after_success: + - python3 -m pip install twine + - python3 -m twine upload --repository testpypi dist/* + - services: docker + if: tag IS present + env: TWINE_USERNAME=__token__ + install: python3 -m pip install cibuildwheel==1.5.1 + script: python3 -m cibuildwheel --output-dir wheelhouse + after_success: + - python3 -m pip install twine + - python3 -m twine upload --repository testpypi wheelhouse/*.whl + - os: osx + if: tag IS present + language: shell + env: TWINE_USERNAME=__token__ + install: python3 -m pip install cibuildwheel==1.5.1 + script: python3 -m cibuildwheel --output-dir wheelhouse + after_success: + - python3 -m pip install twine + - python3 -m twine upload --repository testpypi wheelhouse/*.whl + - os: windows + if: tag IS present + language: shell + env: TWINE_USERNAME=__token__ + before_install: + - choco install python --version 3.8.0 + - export PATH="/c/Python38:/c/Python38/Scripts:$PATH" + install: python -m pip install cibuildwheel==1.5.1 + script: python -m cibuildwheel --output-dir wheelhouse + after_success: + - python -m pip install twine + - python -m twine upload --repository testpypi wheelhouse/*.whl notifications: slack: rooms: diff --git a/Makefile b/Makefile index a2051585..746e2735 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ test-publish: cythonize # Upload distributions to PyPI twine upload --repository testpypi dist/dependency-injector-$(VERSION)* -publish: cythonize +tag: # Merge release to master branch git checkout master git merge --no-ff release/$(VERSION) -m "Merge branch 'release/$(VERSION)' into master" @@ -81,7 +81,3 @@ publish: cythonize # Create and upload tag git tag -a $(VERSION) -m 'version $(VERSION)' git push --tags - # Create distributions - python setup.py sdist - # Upload distributions to PyPI - twine upload dist/dependency-injector-$(VERSION)* diff --git a/docs/main/changelog.rst b/docs/main/changelog.rst index 4be333e0..eaccf8ea 100644 --- a/docs/main/changelog.rst +++ b/docs/main/changelog.rst @@ -9,6 +9,9 @@ follows `Semantic versioning`_ Development version ------------------- +- Start distributing wheels for Linux, MacOS, and Windows (thanks to + `Travis CI `_ and + `cibuildwheel `_). - Start using ``twine`` for publishing package on PyPI. - Fix Travis CI configuration file warnings. diff --git a/requirements-dev.txt b/requirements-dev.txt index d7af1d66..6a587890 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,4 +6,3 @@ flake8 pydocstyle sphinx_autobuild pip -twine