
Platform specification
============================

Basic multi-platform example
----------------------------

Assuming the following layout::

    tox.ini      # see below for content
    setup.py     # a classic distutils/setuptools setup.py file

and the following ``tox.ini`` content:

.. code-block:: ini

	[tox]
	# platform specification support is available since version 2.0
	minversion=2.0
	envlist=py{27,36}-{mylinux,mymacos,mywindows}

	[testenv]
	# environment will be skipped if regular expression does not match against the sys.platform string
	platform=
	       mylinux: linux
	       mymacos: darwin
	       mywindows: win32

	# you can specify dependencies and their versions based on platform filtered envirements
	deps=
	    mylinux,mymacos: py==1.4.32
	    mywindows: py==1.4.30

	# upon tox invocation you will be greeted according to your platform
	commands=
	   mylinux: python -c 'print("Hello, Linus!")'
	   mymacos: python -c 'print("Hello, Steve!")'
	   mywindows: python -c 'print("Hello, Bill!")'

you can invoke ``tox`` in the directory where your ``tox.ini`` resides.
``tox`` creates two virtualenv environments with the ``python2.7`` and
``python3.6`` interpreters, respectively, and will then run the specified
command according to platform you invoke ``tox`` at.
