Concourseのチュートリアル その2 Task Inputs

2019-07-23 2019-07-23

次はこれ
Concourseには、ファイルやディレクトリをタスクに渡すInputsというものが用意されています。

今回のチュートリアルのディレクトリに移動します。

cd ~/concourse-tutorial/tutorials/basic/task-inputs

まずは、Inputsを使用しないタスク

$ fly -t tutorial e -c no_inputs.yml
executing build 14 at http://127.0.0.1:8080/builds/14
initializing
running ls -al
total 8
drwxr-xr-x    2 root     root          4096 Jul 22 15:22 .
drwxr-xr-x    3 root     root          4096 Jul 22 15:22 ..
succeeded
$ cat no_inputs.yml
---
platform: linux

image_resource:
  type: docker-image
  source: {repository: busybox}

run:
  path: ls
  args: ["-al"]

Inputsを使用するタスク

inputsを指定しないとエラーになる

$ fly -t tutorial e -c inputs_required.yml
error: missing required input `some-important-input`

inputsを指定すると実行できる

fly execute-iオプションを使ってInputsを設定できる。
今回はsome-important-input.(カレントディレクトリ)を渡している
このタスク上では、カレントディレクトリが、some-important-inputとして認識されるようになる。(some-important-inputを参照することで、カレントディレクトリにあるファイルをタスク上から参照する事ができる)

$ fly -t tutorial e -c inputs_required.yml -i some-important-input=.
executing build 15 at http://127.0.0.1:8080/builds/15
initializing
some-important-input: 489.74 KiB/s 0s
running ls -alR
.:
total 12
drwxr-xr-x    3 root     root          4096 Jul 22 15:28 .
drwxr-xr-x    3 root     root          4096 Jul 22 15:28 ..
drwxr-xr-x    2 root     root          4096 Jul 22 15:28 some-important-input

./some-important-input:
total 24
drwxr-xr-x    2 root     root          4096 Jul 22 15:28 .
drwxr-xr-x    3 root     root          4096 Jul 22 15:28 ..
-rw-r--r--    1 501      staff          155 Jul 16 14:46 input_parent_dir.yml
-rw-r--r--    1 501      staff          164 Jul 16 14:46 inputs_required.yml
-rw-r--r--    1 501      staff          123 Jul 22 15:22 no_inputs.yml
-rwxr-xr-x    1 501      staff          522 Jul 16 14:46 test.sh
succeeded

以下のように、inputsnameに参照用のキーワードを指定する。

$ cat inputs_required.yml
---
platform: linux

image_resource:
  type: docker-image
  source: {repository: busybox}

inputs:
  - name: some-important-input

run:
  path: ls
  args: ["-alR"]