Use 3 build stages for Travis#1349
Conversation
|
This is in the order test, lint, deploy whereas I would have used lint, test, deploy. i.e. Lint first as it is fairly quick and should fail quickly avoiding often wasted CPU time on the main tests. |
|
Looking at the
Where does job |
|
Is it worth trying putting the environment variable list only under the Also, given the relative length of the test's |
The 3 stages are: - lint (1 job) for `flake8` and `planemo shed_lint` - test (3 jobs) for `planemo test` - deploy (1 job) for `planemo shed_update` to TTS and MTS Also: - Cache pip files - Use `--conda_auto_install` option of `planemo test` instead of running `planemo conda_install` beforehand. This will install only the tool dependencies required by the tools tested in the job xref. galaxyproject#1316 (comment)
lint, test, deploy is what I'm trying to achieve as explained in the PR description.
The interaction between build stages and the build matrix is far from ideal at the moment, because
That's not possible yet, see travis-ci/beta-features#11.
Since I had to demultiplex the build matrix, it's best to have |
| # 'sudo required' will give os 7,5 GB memory, but has slower startup times, as we start a VM instead of a Container | ||
| sudo: required | ||
| language: python | ||
| cache: pip |
There was a problem hiding this comment.
Thanks to this line the following:
pip install flake8 flake8-import-order planemo
went from ~32s to ~11s.
There was a problem hiding this comment.
That's a good tip - I should try cache: pip on my TravisCI setups...
If multiple repos were changed, chunking using ci_find_tools may result in running `planemo test` on a mix of tools from different repos, which does not work because Planemo expects all test data in the same directory, see e.g. https://travis-ci.org/galaxyproject/tools-iuc/jobs/240466613 Also exclude data_managers and packages from the start for the `test` stage.
Also: - Remove deprecated `interpreter` attribute of `<command>` - Use `detect_errors="exit_code"` - Use single quotes in `<command>` - Add CDATA to `<command>` and `<help>` - Add citation - IUC code style fixes - Add Python3 compatibility
| env: CHUNK=2 | ||
|
|
||
| - stage: deploy | ||
| before_install: skip |
There was a problem hiding this comment.
Not really, it's just for a cleaner log.
There was a problem hiding this comment.
Without this TravisCI will use the top level before_install instructions which we don't need or want to be run (although right now that would be quick and harmless).
| # 'sudo required' will give os 7,5 GB memory, but has slower startup times, as we start a VM instead of a Container | ||
| sudo: required | ||
| language: python | ||
| cache: pip |
|
The reworked (Presumably the other changes are on this branch in part to ensure there is something to test?) |
Yes, in particular that there are more than 1 repo with several tools. |
|
Ah this is beauty! What would we do without Nicola! |
…s where in subdirs E.g. in the Travis job: https://travis-ci.org/galaxyproject/tools-iuc/jobs/240866693 for the pull request: galaxyproject/tools-iuc#1349 changed_repositories.list should also have contained the repo `data_managers/data_manager_bowtie_index_builder`
|
And also the https://travis-ci.org/galaxyproject/tools-iuc/builds/240884130 |
|
@bgruening Maybe that's something you can mention in the IUC talk at GCC2017 ;) |
|
Sure, this will be in the talk, but maybe you will give the talk :) Thanks @nsoranzo! |
|
@bgruening I'm the session 3 chair! |
This is the default in the latest versions of Conda I think - you shouldn't need to specify it. |
The 3 stages are:
flake8andplanemo shed_lintplanemo testplanemo shed_updateto TTS and MTSAlso:
--conda_auto_installoption ofplanemo testinstead of runningplanemo conda_installbeforehand. This will install only the tooldependencies required by the tools tested in the job
xref. #1316 (comment)
Fix #1308.