@@ -8,79 +8,169 @@ A Pipeline also needs a `.spec` section.
88
99### Examples
1010
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.
1299
13100` ` ` yaml
14101version: '1.0'
15102kind: pipeline
16103metadata:
17- name : codefresh-io/cli/default-pipeline
18- labels :
19- tags : []
20- deprecate :
21- applicationPort : ' 8080'
22- repoPipeline : true
104+ name: cron
23105spec:
24106 triggers:
25107 - type: git
26- repo : codefresh-io/cli
108+ name: test
109+ repo: repo-owner/repo-name
27110 events:
28111 - push.heads
29112 pullRequestAllowForkEvents: false
30113 commentRegex: /.*/gi
31114 branchRegex: /.*/gi
32115 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+
41127 steps:
42- test_step_1 :
128+ test :
43129 image: alpine
44- working_directory : ' ${{clone_step}}'
45130 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
58153` ` `
59154
60- #### Basic Pipeline with explicit clone step
155+ # ### Basic Pipeline with clone step and git trigger
61156
62157` ` ` yaml
63158version: '1.0'
64159kind: pipeline
65160metadata:
66- name : codefresh-io/cli/basic-pipeline
67- labels :
68- tags : []
69- deprecate :
70- applicationPort : ' 8080'
71- repoPipeline : true
161+ name: basic-pipeline
72162spec:
73163 triggers:
74164 - type: git
75- repo : codefresh-io/cli
165+ name: test
166+ repo: repo-owner/repo-name
76167 events:
77168 - push.heads
78169 pullRequestAllowForkEvents: false
79170 commentRegex: /.*/gi
80171 branchRegex: /.*/gi
81172 branchRegexInput: regex
82- provider : github
83- contexts : []
173+ provider: git-context-name
84174 variables:
85175 - key: PORT
86176 value: '3000'
@@ -108,32 +198,26 @@ spec:
108198 dockerfile: ./Dockerfile
109199 image_name: my-custom-docker-image
110200 tag: bla
111- stages : []
112201` ` `
113202
114203# ### Pipeline with a remote spec template brought from a git repository
115204` ` ` yaml
116205version: '1.0'
117206kind: pipeline
118207metadata:
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
126209spec:
127210 triggers:
128211 - type: git
129- repo : codefresh-io/cli
212+ name: test
213+ repo: repo-owner/repo-name
130214 events:
131215 - push.heads
132216 pullRequestAllowForkEvents: false
133217 commentRegex: /.*/gi
134218 branchRegex: /.*/gi
135219 branchRegexInput: regex
136- provider : github
220+ provider: git-context-name
137221 contexts: []
138222 variables:
139223 - key: PORT
@@ -147,34 +231,26 @@ spec:
147231 repo: codefresh-io/cli
148232 path: codefresh.yml
149233 revision: master # can be a branch or commit. if not specified will use CF_BRANCH variable value
150- steps : {}
151- stages : []
152234` ` `
153235
154236# ### Pipeline with a remote spec template from a public git URL
155237` ` ` yaml
156238version: '1.0'
157239kind: pipeline
158240metadata:
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
167242spec:
168243 triggers:
169244 - type: git
170- repo : codefresh-io/cli
245+ name: test
246+ repo: repo-owner/repo-name
171247 events:
172248 - push.heads
173249 pullRequestAllowForkEvents: false
174250 commentRegex: /.*/gi
175251 branchRegex: /.*/gi
176252 branchRegexInput: regex
177- provider : github
253+ provider: git-context-name
178254 contexts: []
179255 variables:
180256 - key: PORT
@@ -185,6 +261,4 @@ spec:
185261 specTemplate:
186262 location: url
187263 url: 'https://raw.githubusercontent.com/codefresh-io/cli/master/codefresh.yml'
188- steps : {}
189- stages : []
190264` ` `
0 commit comments