0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CWLAdvent Calendar 2017

Day 22

CWL User Guide 22: Nested Workflows をやってみた

Last updated at Posted at 2017-12-21

CWL User Guide 22: Nested Workflows

Common Workflow Language User Guide: Nested Workflows

今回は、ワークフローから別のワークフローを実行する方法について書かれています

21で使ったファイルが必要です。

この回にでてくる主なキーワード

  • SubworkflowFeatureRequirement
  • steps
  • run

CWLファイル、1st-workflow.cwl

1st-workflow.cwl
#!/usr/bin/env cwl-runner

cwlVersion: v1.0
class: Workflow

inputs: []

outputs:
  classout:
    type: File
    outputSource: compile/classout

requirements:
  - class: SubworkflowFeatureRequirement

steps:
  compile:
    run: 1st-workflow.cwl
    in:
      inp:
        source: create-tar/tar
      ex:
        default: "Hello.java"
    out: [classout]

  create-tar:
    requirements:
      - class: InitialWorkDirRequirement
        listing:
          - entryname: Hello.java
            entry: |
              public class Hello {
                public static void main(String[] argv) {
                    System.out.println("Hello from Java");
                }
              }
    in: []
    out: [tar]
    run:
      class: CommandLineTool
      requirements:
        - class: ShellCommandRequirement
      arguments:
        - shellQuote: false
          valueFrom: |
            date
            tar cf hello.tar Hello.java
            date
      inputs: []
      outputs:
        tar:
          type: File
          outputBinding:
            glob: "hello.tar"

パラメータファイル

必要なファイル

実行

実行前確認

Hello.class がないことが確認できる

$ rm Hello.class
$ ls
1st-workflow.cwl  1st-workflow-job.yml  arguments.cwl  hello.tar  nestedworkflows.cwl  tar-param.cwl

実行方法

cwltool nestedworkflows.cwl

実行結果

$ cwltool nestedworkflows.cwl
/usr/local/bin/cwltool 1.0.20171107133715
Resolved 'nestedworkflows.cwl' to 'file:///home/vagrant/cwl_user_guide_work/22-nested-workflows/nestedworkflows.cwl'
[workflow nestedworkflows.cwl] start
[step create-tar] start
[job create-tar] /tmp/tmpt2A3Xw$ /bin/sh \
    -c \
    date
tar cf hello.tar Hello.java
date

Thu Nov 30 03:15:03 JST 2017
Thu Nov 30 03:15:03 JST 2017
[job create-tar] completed success
[step create-tar] completed success
[step compile] start
[workflow compile] start
[step untar] start
[job untar] /tmp/tmpEBE2wd$ tar \
    xf \
    /tmp/tmpAH6U2b/stg9793e8a3-8740-4369-a505-8cb462d77eec/hello.tar \
    Hello.java
[job untar] completed success
[step untar] completed success
[step compile_2] start
[job compile] /tmp/tmpKIJ0en$ docker \
    run \
    -i \
    --volume=/tmp/tmpKIJ0en:/var/spool/cwl:rw \
    --volume=/tmp/tmpH86w67:/tmp:rw \
    --volume=/tmp/tmpEBE2wd/Hello.java:/var/lib/cwl/stg074cefaf-ea7a-42cc-b59e-2607c8ec1c6a/Hello.java:ro \
    --workdir=/var/spool/cwl \
    --read-only=true \
    --user=1000:1000 \
    --rm \
    --env=TMPDIR=/tmp \
    --env=HOME=/var/spool/cwl \
    java:7-jdk \
    javac \
    -d \
    /var/spool/cwl \
    /var/lib/cwl/stg074cefaf-ea7a-42cc-b59e-2607c8ec1c6a/Hello.java
[job compile] completed success
[step compile_2] completed success
[workflow compile] completed success
[step compile] completed success
[workflow nestedworkflows.cwl] completed success
{
    "classout": {
        "checksum": "sha1$36478d3310a80ef7a3f1a7d91d258ec51dcc08ad",
        "basename": "Hello.class",
        "location": "file:///home/vagrant/cwl_user_guide_work/22-nested-workflows/Hello.class",
        "path": "/home/vagrant/cwl_user_guide_work/22-nested-workflows/Hello.class",
        "class": "File",
        "size": 419
    }
}
Final process status is success

実行結果確認

Hello.class が作成されたことが確認できる

$ ls
1st-workflow.cwl  1st-workflow-job.yml  arguments.cwl  Hello.class  hello.tar  nestedworkflows.cwl  tar-param.cwl
$ ls Hello.class
Hello.class

今回使ったファイル

cwl_user_guide_work/22-nested-workflows at master · manabuishii/cwl_user_guide_work

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?