mirror of
https://github.com/go-task/task.git
synced 2025-12-24 23:49:24 +01:00
144 lines
2.6 KiB
YAML
144 lines
2.6 KiB
YAML
version: "3"
|
|
|
|
vars:
|
|
OS_VAR: ["windows", "linux", "darwin"]
|
|
ARCH_VAR: ["amd64", "arm64"]
|
|
NOT_A_LIST: "not a list"
|
|
|
|
tasks:
|
|
# Loop over a list of values
|
|
loop-explicit:
|
|
cmds:
|
|
- for: ["a", "b", "c"]
|
|
cmd: echo "{{.ITEM}}"
|
|
|
|
loop-matrix:
|
|
cmds:
|
|
- for:
|
|
matrix:
|
|
OS: ["windows", "linux", "darwin"]
|
|
ARCH: ["amd64", "arm64"]
|
|
cmd: echo "{{.ITEM.OS}}/{{.ITEM.ARCH}}"
|
|
|
|
loop-matrix-ref:
|
|
cmds:
|
|
- for:
|
|
matrix:
|
|
OS:
|
|
ref: .OS_VAR
|
|
ARCH:
|
|
ref: .ARCH_VAR
|
|
cmd: echo "{{.ITEM.OS}}/{{.ITEM.ARCH}}"
|
|
|
|
loop-matrix-ref-error:
|
|
cmds:
|
|
- for:
|
|
matrix:
|
|
OS:
|
|
ref: .OS_VAR
|
|
ARCH:
|
|
ref: .NOT_A_LIST
|
|
cmd: echo "{{.ITEM.OS}}/{{.ITEM.ARCH}}"
|
|
|
|
# Loop over the task's sources
|
|
loop-sources:
|
|
sources:
|
|
- foo.txt
|
|
- bar.txt
|
|
cmds:
|
|
- for: sources
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over the task's sources when globbed
|
|
loop-sources-glob:
|
|
sources:
|
|
- "*.txt"
|
|
cmds:
|
|
- for: sources
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over the task's generates
|
|
loop-generates:
|
|
generates:
|
|
- foo.txt
|
|
- bar.txt
|
|
cmds:
|
|
- for: generates
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over the task's generates when globbed
|
|
loop-generates-glob:
|
|
generates:
|
|
- "*.txt"
|
|
cmds:
|
|
- for: generates
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over the contents of a variable
|
|
loop-vars:
|
|
vars:
|
|
FOO: foo.txt,bar.txt
|
|
cmds:
|
|
- for:
|
|
var: FOO
|
|
split: ","
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over the output of a command (auto splits on " ")
|
|
loop-vars-sh:
|
|
vars:
|
|
FOO:
|
|
sh: ls *.txt
|
|
cmds:
|
|
- for:
|
|
var: FOO
|
|
cmd: cat "{{.ITEM}}"
|
|
|
|
# Loop over another task
|
|
loop-task:
|
|
vars:
|
|
FOO: foo.txt bar.txt
|
|
cmds:
|
|
- for:
|
|
var: FOO
|
|
task: looped-task
|
|
vars:
|
|
FILE: "{{.ITEM}}"
|
|
|
|
# Loop over another task with the variable named differently
|
|
loop-task-as:
|
|
vars:
|
|
FOO: foo.txt bar.txt
|
|
cmds:
|
|
- for:
|
|
var: FOO
|
|
as: FILE
|
|
task: looped-task
|
|
vars:
|
|
FILE: "{{.FILE}}"
|
|
|
|
# Loop over different tasks using the variable
|
|
loop-different-tasks:
|
|
vars:
|
|
FOO: "1 2 3"
|
|
cmds:
|
|
- for:
|
|
var: FOO
|
|
task: task-{{.ITEM}}
|
|
|
|
looped-task:
|
|
internal: true
|
|
cmd: cat "{{.FILE}}"
|
|
|
|
task-1:
|
|
internal: true
|
|
cmd: echo "1"
|
|
|
|
task-2:
|
|
internal: true
|
|
cmd: echo "2"
|
|
|
|
task-3:
|
|
internal: true
|
|
cmd: echo "3"
|