diff --git a/cwltool/main.py b/cwltool/main.py index fc0e814d0..76a0be7b6 100755 --- a/cwltool/main.py +++ b/cwltool/main.py @@ -174,6 +174,16 @@ def output_callback(out, processStatus): else: kwargs["outdir"] = tempfile.mkdtemp() + jobReqs = None + if "cwl:requirements" in job_order_object: + jobReqs = job_order_object["cwl:requirements"] + elif ("cwl:defaults" in t.metadata and "cwl:requirements" in + t.metadata["cwl:defaults"]): + jobReqs = t.metadata["cwl:defaults"]["cwl:requirements"] + if jobReqs: + for req in jobReqs: + t.requirements.append(req) + jobiter = t.job(job_order_object, output_callback, **kwargs) diff --git a/tests/echo-cwlrun-job.yaml b/tests/echo-cwlrun-job.yaml new file mode 100644 index 000000000..d0858c5c0 --- /dev/null +++ b/tests/echo-cwlrun-job.yaml @@ -0,0 +1,6 @@ +cwl:tool: echo.cwl +cwl:requirements: + - class: DockerRequirement + dockerPull: debian + +inp: "Hoopla!" diff --git a/tests/echo-job.yaml b/tests/echo-job.yaml new file mode 100644 index 000000000..616d4ac99 --- /dev/null +++ b/tests/echo-job.yaml @@ -0,0 +1,5 @@ +cwl:requirements: + - class: DockerRequirement + dockerPull: debian + +inp: "Howdy!"