blob: e606ffb5660118b1659fce59015e5e1c3be14c3b [file] [log] [blame]
liamfallonb76315a2022-01-12 13:24:54 +00001#!/bin/bash
2
3#
4# ============LICENSE_START================================================
5# ONAP
6# =========================================================================
7# Copyright (C) 2022 Nordix Foundation.
8# =========================================================================
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13# http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20# ============LICENSE_END==================================================
21#
22
23set -e
24
liamfallond7d9a662022-03-01 21:01:03 +000025SCRIPT_NAME=$(basename "$0")
liamfallonb76315a2022-01-12 13:24:54 +000026repo_location="./"
27release_data_file="./pf_release_data.csv"
28
29usage()
30{
31 echo ""
32 echo "$SCRIPT_NAME - execute a certain policy framework release phase"
33 echo ""
34 echo " usage: $SCRIPT_NAME [-options]"
35 echo ""
36 echo " options"
37 echo " -h - this help message"
38 echo " -d data_file - the policy release data file to use, defaults to '$release_data_file'"
39 echo " -l location - the location of the policy framework repos on the file system,"
40 echo " defaults to '$repo_location'"
41 echo " -i issue-id - issue ID in the format POLICY-nnnn"
42 echo " -p phase - the release phase, a positive integer"
43 echo ""
44 echo " examples:"
45 echo " $SCRIPT_NAME -l /home/user/onap -d /home/user/data/pf_release_data.csv -i POLICY-1234 -p 3"
46 echo " perform release phase 3 on the repos at location '/home/user/onap' using the release data"
47 echo " in the file '/home/user/data/pf_release_data.csv'"
48 exit 255;
49}
50
51while getopts "hd:l:i:p:" opt
52do
53 case $opt in
54 h)
55 usage
56 ;;
57 d)
58 release_data_file=$OPTARG
59 ;;
60 l)
61 repo_location=$OPTARG
62 ;;
63 i)
64 issue_id=$OPTARG
65 ;;
66 p)
67 release_phase=$OPTARG
68 ;;
69 \?)
70 usage
71 exit 1
72 ;;
73 esac
74done
75
76if [ $OPTIND -eq 1 ]
77then
78 echo "no arguments were specified"
79 usage
80fi
81
82if [[ -z "$repo_location" ]]
83then
84 echo "policy repo location not specified on -l flag"
85 exit 1
86fi
87
88if ! [ -d "$repo_location" ]
89then
90 echo "policy repo location '$repo_location' not found"
91 exit 1
92fi
93
94if [[ -z "$release_data_file" ]]
95then
96 echo "policy release data file not specified on -d flag"
97 exit 1
98fi
99
100if ! [ -f "$release_data_file" ]
101then
102 echo "policy release data file '$release_data_file' not found"
103 exit 1
104fi
105
106if [ -z "$issue_id" ]
107then
108 echo "issue_id not specified on -i flag"
109 exit 1
110fi
111
112if ! echo "$issue_id" | grep -Eq '^POLICY-[0-9]*$'
113then
114 echo "issue ID is invalid, it should be of form 'POLICY-nnnn'"
115 exit 1
116fi
117
118if [ -z "$release_phase" ]
119then
120 echo "release_phase not specified on -p flag"
121 exit 1
122fi
123
124if ! [[ "$release_phase" =~ ^[0-9]+$ ]]
125then
126 echo "release_phase is invalid, it should be a positive integer"
127 exit 1
128fi
129
130release_phase_1() {
131 echo "Updating parent references in the parent pom and generating commit . . ."
liamfallond7d9a662022-03-01 21:01:03 +0000132 updateRefs.sh -d "$release_data_file" -l "$repo_location" -r policy/parent -p
liamfallonb76315a2022-01-12 13:24:54 +0000133 generateCommit.sh \
liamfallond7d9a662022-03-01 21:01:03 +0000134 -l "$repo_location" \
liamfallonb76315a2022-01-12 13:24:54 +0000135 -r policy/parent \
liamfallond7d9a662022-03-01 21:01:03 +0000136 -i "$issue_id" \
liamfallonb76315a2022-01-12 13:24:54 +0000137 -e "update parent references in policy/parent pom" \
138 -m "updated the parent references in the policy/parent pom"
139 echo "Updated parent references in the parent pom and generated commit"
140}
141
142release_phase_2() {
143 echo "Generating artifact release yaml file and commit for policy/parent . . ."
liamfallond7d9a662022-03-01 21:01:03 +0000144 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/parent -i "$issue_id"
liamfallonb76315a2022-01-12 13:24:54 +0000145 echo "Generated artifact release yaml file and commit for policy/parent"
146}
147
148release_phase_3() {
149 echo "Updating snapshots for policy/parent, updating references on policy/docker and policy/common . . ."
150 bumpSnapshots.sh \
liamfallond7d9a662022-03-01 21:01:03 +0000151 -d "$release_data_file" \
152 -l "$repo_location" \
153 -i "$issue_id"
liamfallonb76315a2022-01-12 13:24:54 +0000154 updateRefs.sh \
155 -p \
liamfallond7d9a662022-03-01 21:01:03 +0000156 -d "$release_data_file" \
157 -l "$repo_location" \
158 -r "policy/docker"
liamfallonb76315a2022-01-12 13:24:54 +0000159 updateRefs.sh \
160 -p \
liamfallond7d9a662022-03-01 21:01:03 +0000161 -d "$release_data_file" \
162 -l "$repo_location" \
163 -r "policy/common"
liamfallonb76315a2022-01-12 13:24:54 +0000164 generateCommit.sh \
liamfallond7d9a662022-03-01 21:01:03 +0000165 -l "$repo_location" \
166 -r "policy/docker" \
167 -i "$issue_id" \
liamfallonb76315a2022-01-12 13:24:54 +0000168 -e "update parent references in policy/docker pom" \
169 -m "updated the parent references in the policy/docker pom"
170 generateCommit.sh \
liamfallond7d9a662022-03-01 21:01:03 +0000171 -l "$repo_location" \
172 -r "policy/common" \
173 -i "$issue_id" \
liamfallonb76315a2022-01-12 13:24:54 +0000174 -e "update parent references in policy/common pom" \
175 -m "updated the parent references in the policy/common pom"
176 echo "Updated snapshots for policy/parent, updating references on policy/docker and policy/common"
177}
178
liamfallond7d9a662022-03-01 21:01:03 +0000179release_phase_4() {
180 echo "Generating artifact release yaml file and commit for policy/common . . ."
181 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/common -i "$issue_id"
182 echo "Generated artifact release yaml file and commit for policy/common"
183
184 echo "Generating docker release yaml file and commit for policy/docker . . ."
185 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/docker -i "$issue_id"
186 echo "Generated docker release yaml file and commit for policy/docker"
187}
188
189release_phase_5() {
190 echo "Updating snapshots for policy/common and policy/docker, updating references on policy/models . . ."
191 bumpSnapshots.sh \
192 -d "$release_data_file" \
193 -l "$repo_location" \
194 -i "$issue_id"
195 updateRefs.sh \
196 -pc \
197 -d "$release_data_file" \
198 -l "$repo_location" \
199 -r "policy/models"
200 generateCommit.sh \
201 -l "$repo_location" \
202 -r "policy/models" \
203 -i "$issue_id" \
204 -e "update parent,common references in policy/models pom" \
205 -m "updated the parent and common references in the policy/models pom"
206 echo "Updated snapshots for policy/common and policy/docker, updated references on policy/models"
207}
208
209release_phase_6() {
210 echo "Generating artifact release yaml file and commit for policy/models . . ."
211 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/models -i "$issue_id"
212 echo "Generated artifact release yaml file and commit for policy/models"
213}
214
215release_phase_7() {
liamfalloncd449212022-06-17 10:44:27 +0100216 echo "Generating docker release yaml file and commit for policy/models . . ."
217 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/models -i "$issue_id"
218 echo "Generated docker release yaml file and commit for policy/models"
219}
220
221release_phase_8() {
liamfallond7d9a662022-03-01 21:01:03 +0000222 echo "Updating snapshots for policy/models, updating references on other repos . . ."
223 bumpSnapshots.sh \
224 -d "$release_data_file" \
225 -l "$repo_location" \
226 -i "$issue_id"
227 updateRefs.sh \
228 -pcmk \
229 -d "$release_data_file" \
230 -l "$repo_location" \
231 -r "policy/apex-pdp"
232 updateRefs.sh \
233 -pcmk \
234 -d "$release_data_file" \
235 -l "$repo_location" \
236 -r "policy/api"
237 updateRefs.sh \
238 -pcmk \
239 -d "$release_data_file" \
240 -l "$repo_location" \
241 -r "policy/clamp"
242 updateRefs.sh \
243 -pcmk \
244 -d "$release_data_file" \
245 -l "$repo_location" \
246 -r "policy/distribution"
247 updateRefs.sh \
248 -pcmk \
249 -d "$release_data_file" \
250 -l "$repo_location" \
251 -r "policy/drools-pdp"
252 updateRefs.sh \
253 -pcmk \
254 -d "$release_data_file" \
255 -l "$repo_location" \
liamfallond7d9a662022-03-01 21:01:03 +0000256 -r "policy/pap"
257 updateRefs.sh \
258 -pcmk \
259 -d "$release_data_file" \
260 -l "$repo_location" \
261 -r "policy/xacml-pdp"
262 generateCommit.sh \
263 -l "$repo_location" \
264 -r "policy/apex-pdp" \
265 -i "$issue_id" \
266 -e "update references in policy/apex-pdp pom" \
267 -m "updated references in the policy/apex-pdp pom"
268 generateCommit.sh \
269 -l "$repo_location" \
270 -r "policy/api" \
271 -i "$issue_id" \
272 -e "update references in policy/api pom" \
273 -m "updated references in the policy/api pom"
274 generateCommit.sh \
275 -l "$repo_location" \
276 -r "policy/clamp" \
277 -i "$issue_id" \
278 -e "update references in policy/clamp pom" \
279 -m "updated references in the policy/clamp pom"
280 generateCommit.sh \
281 -l "$repo_location" \
282 -r "policy/distribution" \
283 -i "$issue_id" \
284 -e "update references in policy/distribution pom" \
285 -m "updated references in the policy/distribution pom"
286 generateCommit.sh \
287 -l "$repo_location" \
288 -r "policy/drools-pdp" \
289 -i "$issue_id" \
290 -e "update references in policy/drools-pdp pom" \
291 -m "updated references in the policy/drools-pdp pom"
292 generateCommit.sh \
293 -l "$repo_location" \
liamfallond7d9a662022-03-01 21:01:03 +0000294 -r "policy/pap" \
295 -i "$issue_id" \
296 -e "update references in policy/pap pom" \
297 -m "updated references in the policy/pap pom"
298 generateCommit.sh \
299 -l "$repo_location" \
300 -r "policy/xacml-pdp" \
301 -i "$issue_id" \
302 -e "update references in policy/xacml-pdp pom" \
303 -m "updated references in the policy/xacml-pdp pom"
304 echo "Updated snapshots for policy/models, updated references on other repos"
305}
306
liamfalloncd449212022-06-17 10:44:27 +0100307release_phase_9() {
liamfallond7d9a662022-03-01 21:01:03 +0000308 echo "Generating artifact release yaml file and commit for repos . . ."
309 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/apex-pdp -i "$issue_id"
310 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/api -i "$issue_id"
311 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/clamp -i "$issue_id"
312 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/distribution -i "$issue_id"
313 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/drools-pdp -i "$issue_id"
liamfallond7d9a662022-03-01 21:01:03 +0000314 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/pap -i "$issue_id"
315 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/xacml-pdp -i "$issue_id"
316 echo "Generated artifact release yaml file and commit for repos"
317}
318
liamfalloncd449212022-06-17 10:44:27 +0100319release_phase_10() {
liamfallond7d9a662022-03-01 21:01:03 +0000320 echo "Generating docker release yaml file and commit for repos . . ."
321 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/apex-pdp -i "$issue_id"
322 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/api -i "$issue_id"
323 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/clamp -i "$issue_id"
324 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/distribution -i "$issue_id"
325 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/drools-pdp -i "$issue_id"
liamfallond7d9a662022-03-01 21:01:03 +0000326 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/pap -i "$issue_id"
327 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/xacml-pdp -i "$issue_id"
328 echo "Generated docker release yaml file and commit for repos"
329}
330
liamfalloncd449212022-06-17 10:44:27 +0100331release_phase_11() {
liamfallon4d071bf2022-03-16 14:27:21 +0000332 echo "Updating snapshots for repos, updating references on policy/drools-applications, policy/gui . . ."
liamfallond7d9a662022-03-01 21:01:03 +0000333 bumpSnapshots.sh \
334 -d "$release_data_file" \
335 -l "$repo_location" \
336 -i "$issue_id"
337 updateRefs.sh \
338 -pcmok \
339 -d "$release_data_file" \
340 -l "$repo_location" \
341 -r "policy/drools-applications"
liamfallon4d071bf2022-03-16 14:27:21 +0000342 updateRefs.sh \
343 -pcmxk \
344 -d "$release_data_file" \
345 -l "$repo_location" \
346 -r "policy/gui"
liamfallond7d9a662022-03-01 21:01:03 +0000347 generateCommit.sh \
348 -l "$repo_location" \
349 -r "policy/drools-applications" \
350 -i "$issue_id" \
351 -e "update references in policy/drools-applications pom" \
352 -m "updated references in the policy/drools-applications pom"
liamfallon4d071bf2022-03-16 14:27:21 +0000353 generateCommit.sh \
354 -l "$repo_location" \
355 -r "policy/gui" \
356 -i "$issue_id" \
357 -e "update references in policy/gui pom" \
358 -m "updated references in the policy/gui pom"
359 echo "Updated snapshots for repos, updated references on policy/drools-applications, policy/gui"
liamfallond7d9a662022-03-01 21:01:03 +0000360}
361
liamfalloncd449212022-06-17 10:44:27 +0100362release_phase_12() {
liamfallond7d9a662022-03-01 21:01:03 +0000363 echo "Generating artifact release yaml file and commit for policy/drools-applications . . ."
364 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/drools-applications -i "$issue_id"
liamfallon4d071bf2022-03-16 14:27:21 +0000365 releaseRepo.sh -d "$release_data_file" -l "$repo_location" -r policy/gui -i "$issue_id"
liamfallond7d9a662022-03-01 21:01:03 +0000366 echo "Generated artifact release yaml file and commit for policy/drools-applications"
367}
368
liamfalloncd449212022-06-17 10:44:27 +0100369release_phase_13() {
liamfallond7d9a662022-03-01 21:01:03 +0000370 echo "Generating docker release yaml file and commit for policy/drools-applications . . ."
371 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/drools-applications -i "$issue_id"
liamfallon4d071bf2022-03-16 14:27:21 +0000372 releaseRepoImages.sh -d "$release_data_file" -l "$repo_location" -r policy/gui -i "$issue_id"
liamfallond7d9a662022-03-01 21:01:03 +0000373 echo "Generated docker release yaml file and commit for policy/drools-applications"
374}
375
liamfalloncd449212022-06-17 10:44:27 +0100376release_phase_14() {
liamfallon4d071bf2022-03-16 14:27:21 +0000377 echo "Updating snapshots on policy/drools-applications, policy/gui . . ."
liamfallond7d9a662022-03-01 21:01:03 +0000378 bumpSnapshots.sh \
379 -d "$release_data_file" \
380 -l "$repo_location" \
381 -i "$issue_id"
liamfallon4d071bf2022-03-16 14:27:21 +0000382 echo "Updated snapshots on policy/drools-applications, policy/gui"
liamfallond7d9a662022-03-01 21:01:03 +0000383}
384
liamfallonb76315a2022-01-12 13:24:54 +0000385case "$release_phase" in
386
3871) release_phase_1
388 ;;
389
3902) release_phase_2
391 ;;
392
3933) release_phase_3
394 ;;
395
liamfallond7d9a662022-03-01 21:01:03 +00003964) release_phase_4
397 ;;
398
3995) release_phase_5
400 ;;
401
4026) release_phase_6
403 ;;
404
4057) release_phase_7
406 ;;
407
4088) release_phase_8
409 ;;
410
4119) release_phase_9
412 ;;
413
41410) release_phase_10
415 ;;
416
41711) release_phase_11
418 ;;
419
42012) release_phase_12
421 ;;
422
42313) release_phase_13
424 ;;
425
liamfalloncd449212022-06-17 10:44:27 +010042614) release_phase_14
427 ;;
428
liamfallonb76315a2022-01-12 13:24:54 +0000429*) echo "specified release phase '$release_phase' is invalid"
430 ;;
431esac