Skip to content

tom-tan/ep3

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ep3
 
 
 
 
 
 

Ep3: Extremely Pluggable Pipeline Processor

Actions Status license

This is a workflow engine for the Common Workflow Language which aims to have a pluggable architecture.

Conformance tests for CWL v1.0 for the latest release

release commit

Classes

CommandLineTool ExpressionTool Workflow

Required features

Required

Optional features

DockerRequirement EnvVarRequirement InitialWorkDirRequirement InlineJavascriptRequirement MultipleInputFeatureRequirement ResourceRequirement ScatterFeatureRequirement SchemaDefRequirement ShellCommandRequirement StepInputExpressionRequirement SubworkflowFeatureRequirement

Notes:

  • ep3 will not pass the test #61 with required and command_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) and StepInputExpressionRequirement (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) and SubworkflowFeatureRequirement (subworkflow tag).

Requirements

How to install

  • Install medal, bash, ruby, jq, nodejs and docker
  • Execute the following commands and add /path/to/ep3 to $PATH.
$ git clone --recursive https://github.com/tom-tan/ep3.git

Usage

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
  }
}

For developers

How to test

$ 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

ep3 internals

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)