-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setting up TravisCI continuous integration for IUC tools #11
Comments
Hi @peterjc, The second improvement on my ToDo list is a Galaxy simple script that will convert a tool_dependencies.xml file into the bash script that is executed in the end from Galaxy. This could be used to install the tools or in a later step to generate Dockerfiles automatically. |
That command line script to process a |
Exactly ... just need time to study the code ... too bad @gregvonkuster has left the team. |
I think that Tool Shed package installation should be done via API (or BioBlend) to maximize error reproducibility. |
If you want to install packages, it might worth to have a look at Drone.io. For every build they create a docker container and btw their project is open source. I know that in the open source version one can specify its own docker image. |
@nsoranzo at first we need to get our tools into one Tool Shed. The question is at which time to we want to test the tools. Should Travis-CI build a ToolShed, upload to all files to it and than start testing? Sounds ideal but maybe this like using a sledgehamer to crack a nut. The TestToolShed is also testing for us at some point. |
You're right, this may be overkill, otherwise when can use a dedicated ToolShed, but that would mean exposing the corresponding API key in the .travis.yml file. |
You know that it is possible to encrypt environment variables in the .travis.yml ? |
Didn't know, thanks for the hint! |
I think the consensus of the devteam is that we would like to move toward lighter weight and more general processes. My vision is that you should be able to test tools without the need of a full tool shed (and once we eliminate a full tool shed as a testing dependency - I would like to eliminate the need for a full Galaxy server as well). I consider Peter's Travis-CI setup to be a good deal closer to where I want to take things than something that bootstraps a new tool shed (e.g. an automated version of the workflow Greg described at the GCC). Do what you guys feel you must - prior to my assimilation I was never one to modify my plans based on the abstract future plans of the Borg - but I did want to let you know where my head was at on this issue. |
How about we start with TravisCI script like https://github.com/peterjc/galaxy_blast and https://github.com/peterjc/pico_galaxy which:
Here by 'manually' I mean without using a (local) Galaxy Tool Shed, but instead installing binaries to Later we could install tool dependencies by reading the Once all the dependencies are handled directly, we ought to be able to walk the repository to generate |
I hope you guys consider working this into planemo. It takes care of some of these details (installing Galaxy, giving a spot to place custom installations, generation of Example galaxyproject/planemo#16 |
Might planemo be a good home for the proposed script to execute a |
@peterjc yes! |
Yes, planemo should be the home for all kind of such hacks. I also have some script to convert argparse to tools. |
galaxyproject/planemo#15 is also relevant. That coupled with the docker-in-travis described above and we'd be almost there. |
Additionally, if we're using planemo for that...we should be deploying to the toolshed when PRs are merged into master. :D |
Okay y'all, I'm tired of seeing this issue, so....I set up jenkins testing in the meantime to test ALL of the tools. Yes it's overkill, but it's something, and it's working now until someone sets up Travis testing.
Currently, two things (mostly) pass:
The rest I was too lazy to dig into tool_dependencies and actually install the backend packages, someone may want to do that.... |
Jenkins testing is now live and working. My apologies for all of you who got emails because the bot auto-commented on all open issues requesting an admin to verify a patch. I've removed or altered those comments to instruct jenkins to test where appropriate. So, on to the neat stuff:
|
I'm going to see if I can build a jenkins plugin for galaxy tool testing. If I can, I'm willing to open this up as a free service to anyone above a threshold of some # of tools/packages. If that continues to work well, I'll further open the jenkins instance up to anyone who wants to use it for testing + deploying Galaxy tools. If anyone cares about travis, please feel free to work on that and I'll quit with Jenkins. As I see it, Pros of Jenkins vs Travis:
Cons of Jenkins vs Travis:
Neutral(ish) Items:
|
@jmchilton @erasche @bgruening @nsoranzo @peterjc Thanks for making this happen 👍 |
Reading this again, shows that we have gone a long way! Thanks a bunch to the entire Galaxy community to make all this happen what was required to get this issue done! |
Suggested by @bgruening, it would be great to have the IUC tools tested automatically using TravisCI.
Note that my setup described here http://blastedbio.blogspot.jp/2013/09/using-travis-ci-for-testing-galaxy-tools.html as used on https://github.com/peterjc/galaxy_blast and https://github.com/peterjc/pico_galaxy does not use the Tool Shed packages - it "manually" installs the dependencies from source or using "apt-get install".
What would be ideal for the IUC tools (and my own tools in the long term) would be to have the TravisCI script setup a local Galaxy and a local Tool Shed, and use this to test our IUC packages as well.
The text was updated successfully, but these errors were encountered: