version: '3' tasks: default: - task: map - task: nested-map - task: slice - task: ref - task: ref-sh - task: ref-dep - task: json - task: yaml map: vars: MAP: map: {"name":"Alice","age":30,"children":[{"name":"Bob","age":5},{"name":"Charlie","age":3},{"name":"Diane","age":1}]} cmds: - task: print-var vars: VAR: ref: MAP nested-map: vars: FOO: "foo" nested: map: variables: work: "{{.FOO}}" cmds: - echo {{.nested.variables.work}} slice: vars: FOO: "foo" BAR: "bar" slice_variables_work: ["{{.FOO}}","{{.BAR}}"] cmds: - echo {{index .slice_variables_work 0}} {{index .slice_variables_work 1}} ref: vars: MAP: map: {"name":"Alice","age":30,"children":[{"name":"Bob","age":5},{"name":"Charlie","age":3},{"name":"Diane","age":1}]} MAP_REF: ref: MAP cmds: - task: print-var vars: VAR: ref: MAP_REF ref-sh: vars: JSON_STRING: sh: echo '{"name":"Alice","age":30,"children":[{"name":"Bob","age":5},{"name":"Charlie","age":3},{"name":"Diane","age":1}]}' JSON: json: "{{.JSON_STRING}}" MAP_REF: ref: JSON cmds: - task: print-var vars: VAR: ref: MAP_REF ref-dep: vars: MAP: map: {"name":"Alice","age":30,"children":[{"name":"Bob","age":5},{"name":"Charlie","age":3},{"name":"Diane","age":1}]} deps: - task: print-var vars: VAR: ref: MAP json: vars: JSON_STRING: sh: cat example.json JSON: json: "{{.JSON_STRING}}" cmds: - task: print-var vars: VAR: ref: JSON yaml: vars: YAML_STRING: sh: cat example.yaml YAML: yaml: "{{.YAML_STRING}}" cmds: - task: print-var vars: VAR: ref: YAML print-var: cmds: - >- echo "{{.VAR.name}} has {{len .VAR.children}} children called {{- $children := .VAR.children -}} {{- range $i, $child := $children -}} {{- if lt $i (sub (len $children) 1)}} {{$child.name -}}, {{- else}} and {{$child.name -}} {{- end -}} {{- end -}}"