broadinstitute / cellprofiler-on-Terra

Run CellProfiler on Terra. Contains workflows that enable a full end-to-end Cell Painting pipeline.
BSD 3-Clause "New" or "Revised" License
7 stars 4 forks source link

Automatic tests on a small dataset using GitHub actions #45

Open sjfleming opened 2 years ago

sjfleming commented 2 years ago

Continuous integration tests that run all WDLs on real data.

This is a longer-term goal for me, as I'm sure it will take some effort to get it to work. But there are examples of repositories that use GitHub actions to set up a Cromwell instance and test WDLs using it. It would require using secrets to use gcloud credentials, and it would require setting up a Cromwell server in a test. I'm sure it will take a little bit of trial and error.

But this would be great to go with the womtool validation #28

sjfleming commented 2 years ago

https://cloud.google.com/blog/products/identity-security/enabling-keyless-authentication-from-github-actions

sjfleming commented 2 years ago

I am beginning to think that the right way to do this is to refactor the WDLs so that all the google cloud specific code is in separate tasks, and then we just test the general tasks using a local Cromwell run. But if we really wanted to do a full-blown test of whether it would actually work on Terra, this stuff about authenticating to google cloud is probably a way to do that. Probably still need to set up a Cromwell instance and run it there (on the GitHub actions test VM).

sjfleming commented 1 year ago

The easiest thing to do is to use secrets to authenticate to Terra, and use a Terra workspace to do the testing. This is probably the way forward. It's also then a great record of tests. Consider alto cumulus for this purpose: https://altocumulus.readthedocs.io/en/stable/usage.html#terra-commands

(This would also allow future tests to run on all the backends that Terra supports, without having to manage that.)