@@ -8,79 +8,169 @@ A Pipeline also needs a `.spec` section.
8
8
9
9
### Examples
10
10
11
- #### Basic Pipeline with implicit clone step (will checkout connected repo automatically)
11
+ Use create/replace/delete commands to manage your pipeline
12
+
13
+ ``` shell
14
+ # create pipeline
15
+ codefresh create -f pipeline.yaml
16
+
17
+ # get created/modified pipeline spec
18
+ codefresh get pipeline < name> -o yaml > pipeline.yaml
19
+
20
+ # update pipeline with modified pipeline spec
21
+ codefresh replace -f pipeline.yaml
22
+
23
+ # delete pipeline using spec file
24
+ codefresh delete -f pipeline.yaml
25
+ ```
26
+
27
+ See the examples of pipeline spec below to manage your pipelines.
28
+
29
+ #### Basic pipeline with cron triggers in spec
30
+
31
+ ``` yaml
32
+ version : ' 1.0'
33
+ kind : pipeline
34
+ metadata :
35
+ name : cron
36
+ spec :
37
+ cronTriggers :
38
+ - name : every minute
39
+ type : cron
40
+ message : every minute
41
+ expression : 0/1 * 1/1 * *
42
+ steps :
43
+ test :
44
+ image : alpine
45
+ commands :
46
+ - echo test
47
+ ` ` `
48
+
49
+ #### Basic pipeline with cron triggers with variables
50
+
51
+ ` ` ` yaml
52
+ version : ' 1.0'
53
+ kind : pipeline
54
+ metadata :
55
+ name : cron
56
+ spec :
57
+ cronTriggers :
58
+ - name : every minute
59
+ type : cron
60
+ message : every minute
61
+ expression : 0/1 * 1/1 * *
62
+ variables :
63
+ - key : TEST_VAR
64
+ value : ' my-test'
65
+ steps :
66
+ test :
67
+ image : alpine
68
+ commands :
69
+ - echo ${{TEST_VARIABLE}}
70
+ ` ` `
71
+
72
+ #### Basic pipeline with cron triggers with run options
73
+
74
+ ` ` ` yaml
75
+ version : ' 1.0'
76
+ kind : pipeline
77
+ metadata :
78
+ name : cron
79
+ spec :
80
+ cronTriggers :
81
+ - name : every minute
82
+ type : cron
83
+ message : every minute
84
+ expression : 0/1 * 1/1 * *
85
+ options :
86
+ resetVolume : true
87
+ steps :
88
+ test :
89
+ image : alpine
90
+ commands :
91
+ - echo test >> test.txt
92
+ - cat test.txt
93
+ ` ` `
94
+
95
+ #### Pipeline started by cron trigger but simulating the git trigger
96
+
97
+ Note that ` spec.triggers.0.id` and `spec.cronTriggers.gitTriggerId`
98
+ should be the same value and a valid ObjectId.
12
99
13
100
` ` ` yaml
14
101
version: '1.0'
15
102
kind: pipeline
16
103
metadata:
17
- name : codefresh-io/cli/default-pipeline
18
- labels :
19
- tags : []
20
- deprecate :
21
- applicationPort : ' 8080'
22
- repoPipeline : true
104
+ name: cron
23
105
spec:
24
106
triggers:
25
107
- type: git
26
- repo : codefresh-io/cli
108
+ name: test
109
+ repo: repo-owner/repo-name
27
110
events:
28
111
- push.heads
29
112
pullRequestAllowForkEvents: false
30
113
commentRegex: /.*/gi
31
114
branchRegex: /.*/gi
32
115
branchRegexInput: regex
33
- provider : github
34
- contexts : []
35
- variables :
36
- - key : PORT
37
- value : ' 3000'
38
- - key : SECRET
39
- value : ' secret-value'
40
- encrypted : true
116
+ provider: git-context-name
117
+ id: 65329431edb87250ff128acc
118
+
119
+ cronTriggers:
120
+ - name: every minute
121
+ type: cron
122
+ message: every minute
123
+ expression: 0/1 * 1/1 * *
124
+ gitTriggerId: 65329431edb87250ff128acc
125
+ branch: master
126
+
41
127
steps:
42
- test_step_1 :
128
+ test :
43
129
image: alpine
44
- working_directory : ' ${{clone_step}}'
45
130
commands:
46
- - echo ls
47
- - echo "hello world"
48
- - echo "plain value $PORT"
49
- - echo "encrypted value $PAPA"
50
- - echo "value from context $COOKIE"
51
- build :
52
- type : build
53
- working_directory : ' ${{clone_step}}'
54
- dockerfile : ./Dockerfile
55
- image_name : my-custom-docker-image
56
- tag : foo
57
- stages : []
131
+ - echo ${{CF_BRANCH}}
132
+ ` ` `
133
+
134
+ # ### **Disable** cron trigger in pipeline
135
+
136
+ ` ` ` yaml
137
+ version: '1.0'
138
+ kind: pipeline
139
+ metadata:
140
+ name: cron
141
+ spec:
142
+ cronTriggers:
143
+ - name: every minute
144
+ type: cron
145
+ message: every minute
146
+ expression: 0/1 * 1/1 * *
147
+ disabled: true
148
+ steps:
149
+ test:
150
+ image: alpine
151
+ commands:
152
+ - echo test
58
153
` ` `
59
154
60
- #### Basic Pipeline with explicit clone step
155
+ # ### Basic Pipeline with clone step and git trigger
61
156
62
157
` ` ` yaml
63
158
version: '1.0'
64
159
kind: pipeline
65
160
metadata:
66
- name : codefresh-io/cli/basic-pipeline
67
- labels :
68
- tags : []
69
- deprecate :
70
- applicationPort : ' 8080'
71
- repoPipeline : true
161
+ name: basic-pipeline
72
162
spec:
73
163
triggers:
74
164
- type: git
75
- repo : codefresh-io/cli
165
+ name: test
166
+ repo: repo-owner/repo-name
76
167
events:
77
168
- push.heads
78
169
pullRequestAllowForkEvents: false
79
170
commentRegex: /.*/gi
80
171
branchRegex: /.*/gi
81
172
branchRegexInput: regex
82
- provider : github
83
- contexts : []
173
+ provider: git-context-name
84
174
variables:
85
175
- key: PORT
86
176
value: '3000'
@@ -108,32 +198,26 @@ spec:
108
198
dockerfile: ./Dockerfile
109
199
image_name: my-custom-docker-image
110
200
tag: bla
111
- stages : []
112
201
` ` `
113
202
114
203
# ### Pipeline with a remote spec template brought from a git repository
115
204
` ` ` yaml
116
205
version: '1.0'
117
206
kind: pipeline
118
207
metadata:
119
- name : codefresh-io/cli/from-repo
120
- isPublic : false
121
- labels :
122
- tags : []
123
- deprecate :
124
- applicationPort : ' 8080'
125
- repoPipeline : true
208
+ name: basic-pipeline
126
209
spec:
127
210
triggers:
128
211
- type: git
129
- repo : codefresh-io/cli
212
+ name: test
213
+ repo: repo-owner/repo-name
130
214
events:
131
215
- push.heads
132
216
pullRequestAllowForkEvents: false
133
217
commentRegex: /.*/gi
134
218
branchRegex: /.*/gi
135
219
branchRegexInput: regex
136
- provider : github
220
+ provider: git-context-name
137
221
contexts: []
138
222
variables:
139
223
- key: PORT
@@ -147,34 +231,26 @@ spec:
147
231
repo: codefresh-io/cli
148
232
path: codefresh.yml
149
233
revision: master # can be a branch or commit. if not specified will use CF_BRANCH variable value
150
- steps : {}
151
- stages : []
152
234
` ` `
153
235
154
236
# ### Pipeline with a remote spec template from a public git URL
155
237
` ` ` yaml
156
238
version: '1.0'
157
239
kind: pipeline
158
240
metadata:
159
- name : codefresh-io/cli/from-external
160
- isPublic : false
161
- labels :
162
- tags : []
163
- deprecate :
164
- applicationPort : ' 8080'
165
- repoPipeline : true
166
- project : codefresh-io/cli
241
+ name: basic-pipeline
167
242
spec:
168
243
triggers:
169
244
- type: git
170
- repo : codefresh-io/cli
245
+ name: test
246
+ repo: repo-owner/repo-name
171
247
events:
172
248
- push.heads
173
249
pullRequestAllowForkEvents: false
174
250
commentRegex: /.*/gi
175
251
branchRegex: /.*/gi
176
252
branchRegexInput: regex
177
- provider : github
253
+ provider: git-context-name
178
254
contexts: []
179
255
variables:
180
256
- key: PORT
@@ -185,6 +261,4 @@ spec:
185
261
specTemplate:
186
262
location: url
187
263
url: 'https://raw.githubusercontent.com/codefresh-io/cli/master/codefresh.yml'
188
- steps : {}
189
- stages : []
190
264
` ` `
0 commit comments