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