I once posted with this discussion but we have since moved to an alternative method for workflow deployment.
We have started deploying workflows through a GitHub release (triggered by a git tag that triggers GitHub actins), see Release dragen-pon-qc/3.9.3__1673314733 · umccr/cwl-ica (github.com) as an example.
I would like to know if there’s an easy way to go from zip file (one of the outputs of this release) to Dockstore? Or would the best way be via API?
My understanding is that you wish to publish workflows to Dockstore that have been packed by some process like sbpack or cwlpack and attached to the release.
What I would suggest is using a github action (or some other form of CI) to push (on release) to the packed CWL file to a directory that has been hooked up to our github app ( Dockstore GitHub App — Dockstore documentation )
A couple examples of projects that use this approach would be GitHub - galaxyproject/iwc: Intergalactic Workflow Commission which uploads to various repos in GitHub - galaxyproject/iwc: Intergalactic Workflow Commission after their processes using a bot user and Broad WARP project which also has a CI process before a release Introducing WARP: A collection of cloud-optimized... - Kylee Degatano - BOSC - Talk - ISMB/ECCB 2021 - YouTube
Thank you for your response for this and my apologies for my late reply.
I’m revisiting this topic and will go with your approach of writing back to the repository from the release.
Looking at the manual register API here Swagger UI (dockstore.org), it looks like I need a test-parameter path. This would not be appropriate for most of our workflows as they run on FPGA hardware. Is it possible to leave this blank?
For the workflow name, should this include the workflow AND version. Is it possible to add a version to an existing workflow via the register manual API?
Sorry, a bit of a miscommunication there. The IWC and Warp projects still use GitHub apps and not manual publishing which we’re attempting to phase out.
Rather, the general idea is you have your original source code in one repo and a GitHub action processes that source code and validates it, tests it, and packs it in your case before either writing it back to the same repo in a specific directory or a different repo that is hooked up to our regular GitHub app. That way you can do some special processing before updating the workflow representation on Dockstore.
Hope that makes sense and there is some more documentation on the general idea at those links above or at GitHub - galaxyproject/iwc: Intergalactic Workflow Commission for example