7daacaffb7ce1115828fb9a64b8fb086d4f3d4a2
[releng.git] / docs / jenkins-job-builder / opnfv-jjb-usage.rst
1 ===========================================
2 Creating/Configuring/Verifying Jenkins Jobs
3 ===========================================
4
5 Clone the repo::
6
7  git clone ssh://YOU@gerrit.opnfv.org:29418/releng
8
9 make changes::
10
11  git commit -sv
12  git review
13  remote: Resolving deltas: 100% (3/3)
14  remote: Processing changes: new: 1, refs: 1, done
15  remote:
16  remote: New Changes:
17  remote:   https://gerrit.opnfv.org/gerrit/51
18  remote:
19  To ssh://agardner@gerrit.opnfv.org:29418/releng.git
20   * [new branch]      HEAD -> refs/publish/master
21
22 Follow the link to gerrit https://gerrit.opnfv.org/gerrit/51 in a few moments the verify job will have completed and you will see Verified +1 jenkins-ci in the gerrit ui.
23
24 If the changes pass the verify job https://build.opnfv.org/ci/view/builder/job/builder-verify-jjb/ The patch can be submitited by a committer.
25
26 Job Types
27
28 * Verify Job
29
30  * Trigger: **recheck** or **reverify**
31
32 * Merge Job
33
34  * Trigger: **remerge**
35
36 The verify and merge jobs are retriggerable in Gerrit by simply leaving a comment with one of the keywords listed above. This is useful in case you need to re-run one of those jobs in case if build issues or something changed with the environment.
37
38 You can add below persons as reviewers to your patch in order to get it reviewed and submitted.
39
40 * fatih.degirmenci@ericsson.com
41 * agardner@linuxfoundation.org
42 * trozet@redhat.com
43 * morgan.richomme@orange.com
44 * vlaza@cloudbasesolutions.com
45 * matthew.lijun@huawei.com
46 * pbandzi@cisco.com
47 * jose.lausuch@ericsson.com
48 * koffirodrigue@gmail.com
49 * r-mibu@cq.jp.nec.com
50
51 Or just email a request for submission to opnfv-helpdesk@rt.linuxfoundation.org
52
53 The Current merge and verify jobs for jenkins job builder as pulled from the repo::
54
55 **releng-jobs.yaml**:
56
57 .. code-block:: bash
58
59  - project:
60      name: builder-jobs
61      jobs:
62          - 'builder-verify-jjb'
63          - 'builder-merge'
64
65      project: 'releng'
66
67  - job-template:
68      name: builder-verify-jjb
69
70      node: master
71
72      project-type: freestyle
73
74      logrotate:
75          daysToKeep: 30
76          numToKeep: 10
77          artifactDaysToKeep: -1
78          artifactNumToKeep: -1
79
80      parameters:
81          - project-parameter:
82              project: '{project}'
83          - gerrit-parameter:
84              branch: 'master'
85      scm:
86          - gerrit-trigger-scm:
87              credentials-id: '{ssh-credentials}'
88              refspec: '$GERRIT_REFSPEC'
89              choosing-strategy: 'gerrit'
90
91      wrappers:
92          - ssh-agent-credentials:
93              user: '{ssh-credentials}'
94
95      triggers:
96          - gerrit:
97              trigger-on:
98                  - patchset-created-event:
99                      exclude-drafts: 'false'
100                      exclude-trivial-rebase: 'false'
101                      exclude-no-code-change: 'false'
102                  - draft-published-event
103                  - comment-added-contains-event:
104                      comment-contains-value: 'recheck'
105                  - comment-added-contains-event:
106                      comment-contains-value: 'reverify'
107              projects:
108                - project-compare-type: 'ANT'
109                  project-pattern: 'releng'
110                  branches:
111                    - branch-compare-type: 'ANT'
112                      branch-pattern: '**/master'
113                  file-paths:
114                      - compare-type: ANT
115                        pattern: jjb/**
116                      - compare-type: ANT
117                        pattern: jjb-templates/**
118
119
120      builders:
121          - shell:
122              !include-raw verify-releng
123
124  - job-template:
125      name: 'builder-merge'
126
127      node: master
128
129      # builder-merge job to run JJB update
130      #
131      # This job's purpose is to update all the JJB
132
133      project-type: freestyle
134
135      logrotate:
136          daysToKeep: 30
137          numToKeep: 40
138          artifactDaysToKeep: -1
139          artifactNumToKeep: 5
140
141      parameters:
142          - project-parameter:
143              project: '{project}'
144          - gerrit-parameter:
145              branch: 'master'
146
147      scm:
148          - gerrit-trigger-scm:
149              credentials-id: '{ssh-credentials}'
150              refspec: ''
151              choosing-strategy: 'default'
152
153      wrappers:
154          - ssh-agent-credentials:
155              user: '{ssh-credentials}'
156
157      triggers:
158          - gerrit:
159              trigger-on:
160                  - change-merged-event
161                  - comment-added-contains-event:
162                      comment-contains-value: 'remerge'
163              projects:
164                - project-compare-type: 'ANT'
165                  project-pattern: 'releng'
166                  branches:
167                      - branch-compare-type: 'ANT'
168                        branch-pattern: '**/master'
169                  file-paths:
170                      - compare-type: ANT
171                        pattern: jjb/**
172
173      builders:
174          - shell: |
175                  source /opt/virtualenv/jenkins-job-builder/bin/activate
176                  cd /opt/jenkins-ci/releng
177                  git pull
178                  jenkins-jobs update --delete-old jjb/