In Travis-CI when you combine the three main configuration options of Runtime (language), Environment and Exclusions/Inclusions you get a build matrix of all possible combinations! For example, for django-chartit the matrix includes 43 build jobs, spread across various Python and Django versions. For reference see Build #75.
For django-chartit I wanted to have an additional build job which would execute pylint. I wanted the job to be independent because currently pylint produces lots of errors and warnings. Having an independent job instead of integrating pylint together with all jobs makes it easier to see if any of the functional tests failed.
Using the inclusion functionality of Travis-CI I was able to define an auxiliary build job. The trick is to provide sane environment defaults for all build jobs (regular and auxiliary ones) so you don't have to expand your environment section! In this case the change looks like this
diff --git a/.travis.yml b/.travis.yml index 67f656d..9b669f9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,8 @@ after_success: - coveralls before_install: - pip install coveralls +- if [ -z "$_COMMAND" ]; then export _COMMAND=coverage; fi +- if [ -z "$_DJANGO" ]; then export _DJANGO=1.10.4; fi env: - !!python/unicode '_DJANGO=1.10' - !!python/unicode '_DJANGO=1.10.2' @@ -41,6 +43,10 @@ matrix: python: 3.3 - env: _DJANGO=1.10.4 python: 3.3 + include: + - env: _COMMAND=pylint + python: 3.5 + notifications: email: on_failure: change @@ -50,4 +56,4 @@ python: - 3.3 - 3.4 - 3.5 -script: make coverage +script: make $_COMMAND
Thanks for reading and happy testing!