This is a workflow engine for the Common Workflow Language which aims to have a pluggable architecture.
Notes:
- ep3 will not pass the test #61 with
required
andcommand_line_tool
tags due to common-workflow-language#761. - The conformance badge for SoftwareRequirement is not available because there are no conformance tests for this feature.
- Currently
ScatterFeatureRequirement
(scatter
tag) andStepInputExpressionRequirement
(step_input
tag) are not supported.- It affects the result of the tests of
Workflow
(workflow
tag),InlineJavascriptRequirement
(inline_javascript
tag),MultipleInputFeatureRequirement
(multiple_input
tag) andSubworkflowFeatureRequirement
(subworkflow
tag).
- It affects the result of the tests of
- medal
- bash
- ruby 2.5.1 or later
- jq
- nodejs for
InlineJavascriptRequirement
- docker for
DockerRequirement
- Install
medal
,bash
,ruby
,jq
,nodejs
anddocker
- Execute the following commands and add
/path/to/ep3
to$PATH
.
$ git clone --recursive https://github.com/tom-tan/ep3.git
See ep3-runner --help
for details.
$ ep3-runner <cwl> [job]
It prints the log and debug outputs to stderr and prints the output object to stdout. Both types of outputs are printed in JSON Lines format.
Here is an example:
$ ep3-runner --quiet /path/to/ep3/examples/workflow.cwl /path/to/ep3/examples/inputs.yml | jq .
{
"output": {
"class": "File",
"location": "file:///current/directory/output",
"path": "/current/directory/output",
"basename": "output",
"dirname": "/current/directory",
"nameroot": "output",
"nameext": "",
"checksum": "sha1$c28e458d4e943c743b9b3c46fdab10688a6d68b6",
"size": 687
}
}
$ git clone --recursive https://github.com/tom-tan/ep3.git
$ cd ep3
$ cwltest --tool $PWD/ep3-runner --test test.yml
Test [1/1] Workflow example
All tests passed
The ep3-runner
command consists of the following internal commands:
ep3 init
- Generates Petri nets for medal that represents a given CWL workflow (including internal states in workflow engines such as staging processes)
ep3 run
- Executes a medal to run a workflow
ep3 list
- Shows the output object for execution result
ep3 resume
(Unimplemented)ep3 stop
(Unimplemented)