forked from tektoncd/pipeline
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pipeline-object-param-and-result.yaml
98 lines (98 loc) · 1.96 KB
/
pipeline-object-param-and-result.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: write-param-to-result
spec:
params:
- name: arg
type: object
properties:
url:
type: string
commit:
type: string
results:
- name: object-result
type: object
properties:
foo:
type: string
bar:
type: string
steps:
- name: write-result
image: bash:latest
script: |
#!/usr/bin/env bash
echo -n "{\"foo\":\"$(params.arg.url)\",\"bar\":\"$(params.arg.commit)\"}" | tee $(results.object-result.path)
---
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: echo-param
spec:
params:
- name: arg
type: object
properties:
foo:
type: string
bar:
type: string
steps:
- name: echo-params
image: bash:latest
args: [
"$(params.arg.foo)",
"$(params.arg.bar)"
]
script: |
if [[ $1 != "abc.com" ]]; then
echo "Want: abc.com, Got: $1"
exit 1
else
echo "validate the arg.foo successfully"
fi
if [[ $2 != "sha123" ]]; then
echo "Want: sha123, Got: $2"
exit 1
else
echo "validate the arg.bar successfully"
fi
---
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: pipeline-test
spec:
params:
- name: gitrepo
properties:
url: {}
commit: {}
tasks:
- name: task1
params:
- name: arg
value: $(params.gitrepo[*])
taskRef:
name: write-param-to-result
- name: task2
params:
- name: arg
value: "$(tasks.task1.results.object-result[*])"
taskRef:
name: echo-param
---
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
generateName: pipelinerun-object-param-result-
spec:
params:
- name: gitrepo
value:
url: abc.com
commit: sha123
pipelineRef:
name: pipeline-test