NONRTRIC-946: Servicemanager - build capif as a library
[ci-management.git] / jjb / oran-templates / oran-shell-jobs.yaml
1 #   Copyright (c) 2019 AT&T Intellectual Property.
2 #
3 #   Licensed under the Apache License, Version 2.0 (the 'License');
4 #   you may not use this file except in compliance with the License.
5 #   You may obtain a copy of the License at
6 #
7 #       http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #   Unless required by applicable law or agreed to in writing, software
10 #   distributed under the License is distributed on an 'AS IS' BASIS,
11 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #   See the License for the specific language governing permissions and
13 #   limitations under the License.
14 ---
15 - oran_shell_common: &oran_shell_common
16     name: oran-shell-common
17
18     ######################
19     # Default parameters #
20     ######################
21
22     archive-artifacts: >
23       **/*.log
24     branch: master
25     build-days-to-keep: 30
26     build-timeout: 15
27     cron: ''
28     concurrent: false
29     disable-job: false
30     gerrit-skip-vote: false
31     git-url: '$GIT_URL/$GERRIT_PROJECT'
32     mvn-global-settings: global-settings
33     stream: master
34     submodule-disable: false
35     submodule-recursive: true
36     submodule-timeout: 10
37
38     gerrit_trigger_file_paths:
39       - compare-type: REG_EXP
40         pattern: '.*'
41
42     #####################
43     # Job Configuration #
44     #####################
45
46     project-type: freestyle
47     node: '{build-node}'
48     disabled: '{disable-job}'
49
50     properties:
51       - lf-infra-properties:
52           build-days-to-keep: '{build-days-to-keep}'
53
54     parameters:
55       - lf-infra-parameters:
56           project: '{project}'
57           branch: '{branch}'
58           stream: '{stream}'
59       - string:
60           name: ARCHIVE_ARTIFACTS
61           default: '{archive-artifacts}'
62           description: Artifacts to archive to the logs server.
63
64     wrappers:
65       - lf-infra-wrappers:
66           build-timeout: '{build-timeout}'
67           jenkins-ssh-credential: '{jenkins-ssh-credential}'
68
69     builders:
70       - lf-infra-pre-build
71       - lf-provide-maven-settings:
72           global-settings-file: "{mvn-global-settings}"
73           settings-file: "{mvn-settings}"
74       - lf-infra-create-netrc:
75           server-id: "{mvn-site-id}"
76       - shell: '{script}'
77       - lf-provide-maven-settings-cleanup
78
79     publishers:
80       - lf-infra-publish
81
82 # Verify gerrit changeset by shell script.
83 # Runs on changeset branch to verify new commits; can be run on any branch.
84 #
85 # Required parameters:
86 #   build-node:     label (flavor) of jenkins build minion
87 #   project:        git repository
88 #   project-name:   Jenkins job name prefix
89 #   script:         shell script to execute
90 # Optional parameters:
91 #   branch:         git branch pattern, defaults to master
92 #   stream:         friendly stream name (often same as branch), defaults to master
93 - job-template:
94     name: '{project-name}-shell-verify-{stream}'
95     id: oran-shell-verify
96     <<: *oran_shell_common
97
98     gerrit_verify_triggers:
99       - patchset-created-event:
100           exclude-drafts: true
101           exclude-trivial-rebase: false
102           exclude-no-code-change: false
103       - draft-published-event
104       - comment-added-contains-event:
105           comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
106
107     scm:
108       - lf-infra-gerrit-scm:
109           jenkins-ssh-credential: '{jenkins-ssh-credential}'
110           git-url: '{git-url}'
111           refspec: '$GERRIT_REFSPEC'
112           branch: '$GERRIT_BRANCH'
113           submodule-recursive: '{submodule-recursive}'
114           submodule-timeout: '{submodule-timeout}'
115           submodule-disable: '{submodule-disable}'
116           choosing-strategy: gerrit
117
118     triggers:
119       - timed: '{obj:cron}'
120       - gerrit:
121           server-name: '{gerrit-server-name}'
122           trigger-on: '{obj:gerrit_verify_triggers}'
123           projects:
124             - project-compare-type: ANT
125               project-pattern: '{project}'
126               branches:
127                 - branch-compare-type: ANT
128                   branch-pattern: '**/{branch}'
129               file-paths: '{obj:gerrit_trigger_file_paths}'
130           skip-vote:
131             successful: '{gerrit-skip-vote}'
132             failed: '{gerrit-skip-vote}'
133             unstable: '{gerrit-skip-vote}'
134             notbuilt: '{gerrit-skip-vote}'
135
136 # Build from gerrit by shell script.
137 # Triggered automatically by merge; can be run on any branch.
138 #
139 # Required parameters:
140 #   build-node:     label (flavor) of jenkins build minion
141 #   project:        git repository
142 #   project-name:   Jenkins job name prefix
143 #   script:         shell script to execute
144 # Optional parameters:
145 #   branch:         git branch pattern, defaults to master
146 #   stream:         friendly stream name (often same as branch), defaults to master
147 - job-template:
148     name: '{project-name}-shell-merge-{stream}'
149     id: oran-shell-merge
150     <<: *oran_shell_common
151
152     gerrit_merge_triggers:
153       - change-merged-event
154       - comment-added-contains-event:
155           comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
156
157     scm:
158       - lf-infra-gerrit-scm:
159           jenkins-ssh-credential: '{jenkins-ssh-credential}'
160           git-url: '{git-url}'
161           refspec: '$GERRIT_REFSPEC'
162           branch: '$GERRIT_BRANCH'
163           submodule-recursive: '{submodule-recursive}'
164           submodule-timeout: '{submodule-timeout}'
165           submodule-disable: '{submodule-disable}'
166           choosing-strategy: default
167
168     triggers:
169       - timed: '{obj:cron}'
170       - gerrit:
171           server-name: '{gerrit-server-name}'
172           trigger-on: '{obj:gerrit_merge_triggers}'
173           projects:
174             - project-compare-type: ANT
175               project-pattern: '{project}'
176               branches:
177                 - branch-compare-type: ANT
178                   branch-pattern: '**/{branch}'
179               file-paths: '{obj:gerrit_trigger_file_paths}'
180
181 # Build and publish artifact from gerrit by shell script.
182 # Triggered automatically by merging specific release file;
183 # can be run on any branch.
184 #
185 # Required parameters:
186 #   build-node:     label (flavor) of jenkins build minion
187 #   project:        git repository
188 #   project-name:   Jenkins job name prefix
189 #   script:         shell script to execute
190 # Optional parameters:
191 #   branch:         git branch pattern, defaults to master
192 #   stream:         friendly stream name (often same as branch), defaults to master
193 #   gerrit_release_file_paths: Pathname pattern of the release file to trigger this job
194 - job-template:
195     name: '{project-name}-shell-release-{stream}'
196     id: oran-shell-release
197     <<: *oran_shell_common
198
199     gerrit_release_file_paths:
200       - compare-type: REG_EXP
201         pattern: 'releases\/oran-shell-release.*\.yaml'
202
203     scm:
204       - lf-infra-gerrit-scm:
205           jenkins-ssh-credential: '{jenkins-ssh-credential}'
206           git-url: '{git-url}'
207           refspec: '$GERRIT_REFSPEC'
208           branch: '$GERRIT_BRANCH'
209           submodule-recursive: '{submodule-recursive}'
210           submodule-timeout: '{submodule-timeout}'
211           submodule-disable: '{submodule-disable}'
212           choosing-strategy: default
213
214     triggers:
215       - gerrit:
216           server-name: '{gerrit-server-name}'
217           trigger-on:
218             - change-merged-event
219           projects:
220             - project-compare-type: ANT
221               project-pattern: '{project}'
222               branches:
223                 - branch-compare-type: ANT
224                   branch-pattern: '**/{branch}'
225               file-paths: '{obj:gerrit_release_file_paths}'
226