Common Workflow Language User Guide#
This guide will introduce you to writing workflows using the
Common Workflow Language (CWL)
open standards. This guide describes the latest specification v1.2
.
Contributions and Feedback are Welcome!
If you find that something is missing from this guide, or if you would like to provide other feedback, file an Issue on the project repository for this guide. You can also suggest changes directly in a Pull Request by clicking the “Edit this page” button at the right sidebar of each page.
Table of Contents#
- 1. Introduction
- 2. Topics
- 2.1. YAML Guide
- 2.2. Command Line Tool
- 2.3. Expressions
- 2.4. Inputs
- 2.5. Additional Arguments and Parameters
- 2.6. Parameter References
- 2.7. Outputs
- 2.8. Custom Types
- 2.9. Expression Tool
- 2.10. Workflows
- 2.11. Operations
- 2.12. Environment Variables
- 2.13. Using Containers
- 2.14. Creating Files at Runtime
- 2.15. Staging Input Files
- 2.16. Best Practices
- 2.17. File Formats
- 2.18. Metadata and Authorship
- 2.19. Specifying Software Requirements
- 2.20. Troubleshooting
- 3. Tutorials
- 4. FAQ
- 4.1. How do I create non “
File
” types usingevalFrom
? - 4.2. How do I rename an input file?
- 4.3. How do I rename an output file?
- 4.4. How do I reference a local script?
- 4.5. How can I set
self
-based input bindings for optional inputs? - 4.6. How can I model a “one-or-the-other” parameter?
- 4.7. How do I connect a solo value to an input that expects an array of that type?
- 4.8. How do make an input optional? 💯
- 4.9. How do I specify an input that must come from a list of predefined values (i.e. How do I use enum inputs) ?
- 4.10. How do I describe dependent or exclusive input parameters(e.g. How do I use record inputs)?
- 4.11. How do I set mutually exclusive parameters?
- 4.12. How can I set Booleans?
- 4.13. What should I do when concatenating strings in inputs?
- 4.14. I get
cwltool
errors due to filenames with space characters inside. What should I do? - 4.15. What should I do when I get CWL Parameter Reference error due to hyphen in an input identifier?
- 4.16. How do I use CWL and cwltool with Singularity?
- 4.17. How do I debug the JavaScript in my CWL tool?
- 4.1. How do I create non “
- 5. Licenses