okfn-brasil / serenata-toolbox

📦 pip module containing code shared across Serenata de Amor's projects | ** Este repositório não recebe atualizações frequentes **
MIT License
154 stars 69 forks source link

Run tox tests in TravicCI #219

Closed willianpaixao closed 4 years ago

willianpaixao commented 4 years ago

PR #217 introduced tox replacing pytest as testing framework. Although all the tests run locally, TravisCI jobs fail. [1]

According to the official TravisCI documentation, there's still work left to be done in order to have a successful build, since TravicCI and tox don't have a good integration, needing a few workarounds to have it working properly. [2] The documentation also points an example.

It's important to note that tox-travis documentation hasn't officially supported Python 3.8 (even though some commits started it's implementation). [3] [3] also can be used as an example.

lipemorais commented 4 years ago

There is an issues that as far as I understand was introduced on #217 .

I realised it looking at the logs from one of the jobs. Where I saw the message below:

___________________________________ summary ____________________________________
  py38: commands succeeded
SKIPPED:  py37: InterpreterNotFound: python3.7
  py36: commands succeeded
  congratulations :)

Each time that the tox command is executed it try to runs all the 3 Python versions(3.6, 3.7 and 3.8). The impact of it is that it takes a lot of time unnecessarily.

Ideally just one version should be executed for each stage. The job for Python 3.6 doesn't try to run 3.7 our 3.8, for example.

By the way I don't thinking that it block #220 to be merged because it fixes the CI and make the project able to be released.

@willianpaixao @cuducos do you have any ideia how it could be fixed?

willianpaixao commented 4 years ago

@lipemorais I did noticed that and the PR is not yet finished. I will fix this before merging.

willianpaixao commented 4 years ago

@lipemorais that issue was fixed.

py38: commands succeeded
SKIPPED:  py37: InterpreterNotFound: python3.7
SKIPPED:  py36: InterpreterNotFound: python3.6

I would like to run tox with '-e $TOXENV` flag but travis fails in passing the environment variable defined in matrix build, leaving only this option, of running all versions and skipping all but one per time. Not the most elegant ever, but in the future if travis fix this glitch we can improve this.