CWL Runner

CWL specifies a standard cwl-runner interface to execute CWL workflows from the command line. StreamFlow adheres to this interface, installing a cwl-runner executable in the user’s $PATH. In particular, a

cwl-runner processfile jobfile

command is equivalent to a streamflow run command with the following streamflow.yml file:

version: v1.0
workflows:
  workflow_name:
    type: cwl
    config:
      file: processfile
      settings: jobfile

In addition to the standard parameters, it is possible to pass a --streamflow-file argument to the cwl-runner CLI with the path of a StreamFlow file containing models and bindings (see the StreamFlow file section). The workflows section of this file must have a single entry containing a list of bindings. If present, the type and config entries will be ignored. Files containing multiple workflow entries will throw an exception.

For example, the workflow described in the operations section of this guide can also be executed with the following command

cwl-runner --streamflow-file /path/to/streamflow.yml main.cwl config.cwl

where the streamflow.yml fail contains these lines

version: v1.0
workflows:
  extract-and-compile:
    bindings:
     - step: /compile
       target:
         model: docker-openjdk

models:
  docker-openjdk:
    type: docker
    config:
      image: openjdk:9.0.1-11-slim