Initial Jenkins job pipeline for armband project
[releng.git] / jjb / armband / armband.yml
1 - project:
2     name: armband
3     jobs:
4         - 'armband-test'
5         - 'armband-daily-{stream}'
6         - 'armband-verify'
7         - 'armband-merge'
8
9     # stream:    branch with - in place of / (eg. stable-arno)
10     # branch:    branch (eg. stable/arno)
11     stream:
12         - master:
13             branch: 'master'
14
15     project: 'armband'
16     somevar: 'foo'
17
18 - job-template:
19     name: armband-test
20
21     project-type: freestyle
22
23     logrotate:
24         daysToKeep: 30
25         numToKeep: 10
26         artifactDaysToKeep: -1
27         artifactNumToKeep: -1
28
29     builders:
30         - shell: |
31             echo "Hello world from armband"
32
33 - job-template:
34     name: 'armband-daily-{stream}'
35
36     node: master
37
38     # Job template for daily builders
39     #
40     # Required Variables:
41     #     stream:    branch with - in place of / (eg. stable)
42     #     branch:    branch (eg. stable)
43
44     project-type: freestyle
45     varsetabove: '{somevar}'
46
47     logrotate:
48         daysToKeep: '{build-days-to-keep}'
49         numToKeep: '{build-num-to-keep}'
50         artifactDaysToKeep: '{build-artifact-days-to-keep}'
51         artifactNumToKeep: '{build-artifact-num-to-keep}'
52
53     parameters:
54         - project-parameter:
55             project: '{project}'
56
57     scm:
58         - git-scm:
59             credentials-id: '{ssh-credentials}'
60             refspec: ''
61             branch: '{branch}'
62
63     wrappers:
64         - ssh-agent-credentials:
65             user: '{ssh-credentials}'
66
67     triggers:
68         - timed: 'H H * * *'
69
70     prebuilders:
71         - test-macro
72
73     builders:
74         - shell: |
75             pwd
76             find .
77             echo "Hello world from armband {somevar} daily"
78
79     postbuilders:
80         - test-macro
81
82 - job-template:
83     name: 'armband-verify'
84
85     node: ericsson-build
86
87     project-type: freestyle
88
89     logrotate:
90         daysToKeep: 30
91         numToKeep: 10
92         artifactDaysToKeep: -1
93         artifactNumToKeep: -1
94
95     parameters:
96         - project-parameter:
97             project: '{project}'
98         - gerrit-parameter:
99             branch: 'master'
100         - string:
101             name: GIT_BASE
102             default: https://gerrit.opnfv.org/gerrit/$PROJECT
103             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
104     scm:
105         - gerrit-trigger-scm:
106             credentials-id: '{ssh-credentials}'
107             refspec: '$GERRIT_REFSPEC'
108             choosing-strategy: 'gerrit'
109
110     wrappers:
111         - ssh-agent-credentials:
112             user: '{ssh-credentials}'
113
114     triggers:
115         - gerrit:
116             trigger-on:
117                 - patchset-created-event:
118                     exclude-drafts: 'false'
119                     exclude-trivial-rebase: 'false'
120                     exclude-no-code-change: 'false'
121                 - draft-published-event
122                 - comment-added-contains-event:
123                     comment-contains-value: 'recheck'
124                 - comment-added-contains-event:
125                     comment-contains-value: 'reverify'
126             projects:
127               - project-compare-type: 'ANT'
128                 project-pattern: 'armband'
129                 branches:
130                   - branch-compare-type: 'ANT'
131                     branch-pattern: '**/master'
132
133     builders:
134         - shell: |
135             pwd
136             find .
137             echo "verify logic goes here"
138
139 - job-template:
140     name: 'armband-merge'
141
142     node: master
143
144     # builder-merge job to run JJB update
145     #
146     # This job's purpose is to update all the JJB
147
148     project-type: freestyle
149
150     logrotate:
151         daysToKeep: 30
152         numToKeep: 40
153         artifactDaysToKeep: -1
154         artifactNumToKeep: 5
155
156     parameters:
157         - project-parameter:
158             project: '{project}'
159         - gerrit-parameter:
160             branch: 'master'
161         - string:
162             name: GIT_BASE
163             default: https://gerrit.opnfv.org/gerrit/$PROJECT
164             description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW."
165
166     scm:
167         - gerrit-trigger-scm:
168             credentials-id: '{ssh-credentials}'
169             refspec: ''
170             choosing-strategy: 'default'
171
172     wrappers:
173         - ssh-agent-credentials:
174             user: '{ssh-credentials}'
175
176     triggers:
177         - gerrit:
178             trigger-on:
179                 - change-merged-event
180                 - comment-added-contains-event:
181                     comment-contains-value: 'remerge'
182             projects:
183               - project-compare-type: 'ANT'
184                 project-pattern: 'armband'
185                 branches:
186                     - branch-compare-type: 'ANT'
187                       branch-pattern: '**/master'
188
189     builders:
190         - shell: |
191             pwd
192             find .
193             echo "merge logic goes here"