forked from zhanggbj/triggers
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pipeline.yaml
153 lines (152 loc) · 3.33 KB
/
pipeline.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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
---
# The getting-started Pipeline will run through several tasks:
# - source is pulled from git
# - conditions say go test must pass before moving on
# - source is built into an image by img
# - image output is pushed to ECR
# - cloudevent emitted
apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:
name: getting-started-pipeline
namespace: getting-started
spec:
resources:
- name: source-repo
type: git
- name: image-source
type: image
- name: event-to-sink
type: cloudEvent
tasks:
- name: build-docker-image
taskRef:
name: build-docker-image
conditions:
- conditionRef: "go-test"
resources:
- name: source-repo
resource: source-repo
params:
- name: pathToContext
value: /workspace/source-repo
resources:
inputs:
- name: source-repo
resource: source-repo
outputs:
- name: builtImage
resource: image-source
- name: deploy-locally
taskRef:
name: deploy-locally
resources:
inputs:
- name: image-source
resource: image-source
from:
- build-docker-image
outputs:
- name: event-to-sink
resource: event-to-sink
---
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
name: deploy-locally
namespace: getting-started
spec:
inputs:
resources:
- name: image-source
type: image
outputs:
resources:
- name: event-to-sink
type: cloudEvent
steps:
- name: run-kubectl
image: lachlanevenson/k8s-kubectl
command: ["kubectl"]
args:
- "run"
- "tekton-triggers-built-me"
- "--image"
- "${inputs.resources.image-source.url}"
- "--env=PORT=8080"
---
apiVersion: tekton.dev/v1alpha1
kind: Task
metadata:
name: build-docker-image
namespace: getting-started
spec:
inputs:
resources:
- name: source-repo
type: git
params:
- name: pathToContext
description:
The build directory used by img
default: /workspace/source-repo
outputs:
resources:
- name: builtImage
type: image
steps:
- name: build-and-push
image: r.j3ss.co/img
command:
- /usr/bin/img
args:
- build
- -t
- "${outputs.resources.builtImage.url}"
- --no-cache
- "${inputs.params.pathToContext}"
---
apiVersion: tekton.dev/v1alpha1
kind: Condition
metadata:
name: go-test
namespace: getting-started
spec:
resources:
- name: source-repo
type: git
check:
image: golang
command: ["go"]
args: ['test', "$(inputs.resources.source-repo.path)/..."]
---
# Finally, we need something to receive our cloudevent announcing success!
# That is this services only purpose
apiVersion: v1
kind: Service
metadata:
name: event-display
namespace: getting-started
labels:
app: event-display
spec:
type: ClusterIP
ports:
- name: listener
port: 8080
protocol: TCP
selector:
app: event-display
---
apiVersion: v1
kind: Pod
metadata:
name: event-display
namespace: getting-started
labels:
name: event-display
spec:
hostname: event-display
containers:
- image: gcr.io/knative-releases/github.com/knative/eventing-sources/cmd/event_display
name: web