Common Workflow Language reference implementation
Web Ontology Language Python JavaScript Other
Latest commit b630de9 Feb 17, 2017 @mr-c mr-c committed on GitHub Merge pull request #296 from common-workflow-language/docker-tests
add tests directory to the Docker image
Permalink
Failed to load latest commit information.
cwlref-runner finish cwl-runner to cwlref-runner rename Jul 6, 2016
cwltool When on_error=continue, do not execute downstream steps connected to … Feb 13, 2017
tests ship tests, add release tester Feb 17, 2017
typeshed/2.7 type fixups Dec 21, 2016
.coveragerc add Makefile to measure coverage Jun 10, 2016
.gitignore Packing refactor (#177) Aug 29, 2016
.travis.yml add auto flake8 & mypy tests for pull requests Aug 19, 2016
LICENSE.txt Squashed 'cwltool/schemas/' content from commit ee1cf15 May 4, 2016
MANIFEST.in Merge branch 'master' into docker-no-ez_setup Feb 17, 2017
Makefile ship tests, add release tester Feb 17, 2017
README.rst typo: instal -> install Dec 5, 2016
build-cwl-docker.sh Fix building docker images after introduction of ruyaml. May 11, 2016
cwl-docker.sh Fix for secondary file handling. Jan 8, 2016
cwltool.Dockerfile Fix for secondary file handling. Jan 8, 2016
cwltool.py cleanup Feb 8, 2017
cwltool_module.Dockerfile add tests directory to the Docker image Feb 17, 2017
gittaggers.py cleanup Feb 8, 2017
node-expr-engine.Dockerfile Web site generation works using specification/cwlsite.cwl Jun 5, 2015
release-test.sh ship tests, add release tester Feb 17, 2017
requirements.txt upgrade to mypy 0.470 Feb 8, 2017
setup.cfg ship tests, add release tester Feb 17, 2017
setup.py ship tests, add release tester Feb 17, 2017
tox.ini When on_error=continue, do not execute downstream steps connected to … Feb 13, 2017
wrapdocker Build and run cwltool in Docker May 8, 2015

README.rst

Common workflow language tool description reference implementation

CWL Conformance test: Build Status

This is the reference implementation of the Common Workflow Language. It is intended to be feature complete and provide comprehensive validation of CWL files as well as provide other tools related to working with CWL.

This is written and tested for Python 2.7.

The reference implementation consists of two packages. The "cwltool" package is the primary Python module containing the reference implementation in the "cwltool" module and console executable by the same name.

The "cwlref-runner" package is optional and provides an additional entry point under the alias "cwl-runner", which is the implementation-agnostic name for the default CWL interpreter installed on a host.

Install

Installing the official package from PyPi (will install "cwltool" package as well):

pip install cwlref-runner

If installling alongside another CWL implementation then:

pip install cwltool

To install from source:

git clone https://github.com/common-workflow-language/cwltool.git
cd cwltool && python setup.py install
cd cwlref-runner && python setup.py install  # co-installing? skip this

Remember, if co-installing multiple CWL implementations then you need to maintain which implementation cwl-runner points to via a symbolic file system link or [another facility](https://wiki.debian.org/DebianAlternatives).

Run on the command line

Simple command:

cwl-runner [tool-or-workflow-description] [input-job-settings]

Or if you have multiple CWL implementations installed and you want to override the default cwl-runner use:

cwltool [tool-or-workflow-description] [input-job-settings]

Import as a module

Add:

import cwltool

to your script.

Use with boot2docker

boot2docker is running docker inside a virtual machine and it only mounts Users on it. The default behavoir of CWL is to create temporary directories under e.g. /Var which is not accessible to Docker containers.

To run CWL successfully with boot2docker you need to set the --tmpdir-prefix and --tmp-outdir-prefix to somewhere under /Users:

$ cwl-runner --tmp-outdir-prefix=/Users/username/project --tmpdir-prefix=/Users/username/project wc-tool.cwl wc-job.json

Tool or workflow loading from remote or local locations

cwltool can run tool and workflow descriptions on both local and remote systems via its support for HTTP[S] URLs.

Input job files and Workflow steps (via the run directive) can reference CWL documents using absolute or relative local filesytem paths. If a relative path is referenced and that document isn't found in the current directory then the following locations will be searched: http://www.commonwl.org/v1.0/CommandLineTool.html#Discovering_CWL_documents_on_a_local_filesystem