Skip to content

Commit 5bc34e4

Browse files
author
zxBCN Valeriu_Tuguran,Constantin (IT EDP) EXTERNAL
committed
Add create provision release manager script.
1 parent 040ac03 commit 5bc34e4

1 file changed

Lines changed: 281 additions & 0 deletions

File tree

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,281 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
4+
function usage {
5+
printf "usage: %s [options]\n" "$0"
6+
printf "\t-h|--help\tPrints the usage\n"
7+
printf "\t-v|--verbose\tVerbose output\n"
8+
printf "\t-s|--trigger_secret\tTrigger Secret\n"
9+
printf "\t-k|--project_key\tProject Key (case sensitive)\n"
10+
printf "\t-bu|--bitbucket_url\tBitbucket Url\n"
11+
printf "\t-w|--webhook_proxy_url\tWebhook Proxy Url\n"
12+
printf "\t-c|--component_id\tComponent Id\n"
13+
printf "\t-b|--brach\tBranch\n"
14+
printf "\t-u|--username\tUsername\n"
15+
printf "\t-p|--password\tPassword\n"
16+
printf "\t-sh|--git_url_ssh\tGit Url SSH\n"
17+
printf "\t-ht|--git_url_http\tGit Url HTTP\n"
18+
printf "\t-gi|--group_id\tGroup Id\n"
19+
printf "\t-pn|--package_name\tPackage Name\n"
20+
printf "\t-on|--ods_namespace\tODS Namespace\n"
21+
printf "\t-op|--ods_bb_project\tODS Bitbucket Project\n"
22+
printf "\t-ot|--ods_image_tag\tODS Image Tag\n"
23+
printf "\t-or|--ods_git_ref\tODS Git Ref\n"
24+
printf "\t-ag|--admin_group\tAdmin Group\n"
25+
printf "\t-ug|--user_group\tUser Group\n"
26+
}
27+
28+
while [[ "$#" -gt 0 ]]; do case $1 in
29+
-v|--verbose) set -x;;
30+
31+
-h|--help) usage; exit 0;;
32+
33+
-k=*|--project_key=*) PROJECT_KEY="${1#*=}";;
34+
-k|--project_key) PROJECT_KEY="$2"; shift;;
35+
36+
-s=*|--trigger_secret=*) TRIGGER_SECRET="${1#*=}";;
37+
-s|--trigger_secret) TRIGGER_SECRET="$2"; shift;;
38+
39+
-bu=*|--bitbucket_url=*) BITBUCKET_URL="${1#*=}";;
40+
-bu|--bitbucket_url) BITBUCKET_URL="$2"; shift;;
41+
42+
-w=*|--webhook_proxy_url=*) WEBHOOK_PROXY_URL="${1#*=}";;
43+
-w|--webhook_proxy_url) WEBHOOK_PROXY_URL="$2"; shift;;
44+
45+
-c=*|--component_id=*) COMPONENT_ID="${1#*=}";;
46+
-c|--component_id) COMPONENT_ID="$2"; shift;;
47+
48+
-b=*|--brach=*) BRANCH="${1#*=}";;
49+
-b|--brach) BRANCH="$2"; shift;;
50+
51+
-u=*|--username=*) BASIC_AUTH_USER="${1#*=}";;
52+
-u|--username) BASIC_AUTH_USER="$2"; shift;;
53+
54+
-p=*|--password=*) BASIC_AUTH_PWD="${1#*=}";;
55+
-p|--password) BASIC_AUTH_PWD="$2"; shift;;
56+
57+
-sh=*|--git_url_ssh=*) GIT_URL_SSH="${1#*=}";;
58+
-sh|--git_url_ssh) GIT_URL_SSH="$2"; shift;;
59+
60+
-ht=*|--git_url_http=*) GIT_URL_HTTP="${1#*=}";;
61+
-ht|--git_url_http) GIT_URL_HTTP="$2"; shift;;
62+
63+
-gi=*|--group_id=*) GROUP_ID="${1#*=}";;
64+
-gi|--group_id) GROUP_ID="$2"; shift;;
65+
66+
-pn=*|--package_name=*) PACKAGE_NAME="${1#*=}";;
67+
-pn|--package_name) PACKAGE_NAME="$2"; shift;;
68+
69+
-on=*|--ods_namespace=*) ODS_NAMESPACE="${1#*=}";;
70+
-on|--ods_namespace) ODS_NAMESPACE="$2"; shift;;
71+
72+
-op=*|--ods_bb_project=*) ODS_BITBUCKET_PROJECT="${1#*=}";;
73+
-op|--ods_bb_project) ODS_BITBUCKET_PROJECT="$2"; shift;;
74+
75+
-ot=*|--ods_image_tag=*) ODS_IMAGE_TAG="${1#*=}";;
76+
-ot|--ods_image_tag) ODS_IMAGE_TAG="$2"; shift;;
77+
78+
-or=*|--ods_git_ref=*) ODS_GIT_REF="${1#*=}";;
79+
-or|--ods_git_ref) ODS_GIT_REF="$2"; shift;;
80+
81+
-ag=*|--admin_group=*) ADMIN_GROUP="${1#*=}";;
82+
-ag|--admin_group) ADMIN_GROUP="$2"; shift;;
83+
84+
-ug=*|--user_group=*) USER_GROUP="${1#*=}";;
85+
-ug|--user_group) USER_GROUP="$2"; shift;;
86+
87+
*) echo "Unknown parameter passed: $1"; usage; exit 1;;
88+
esac; shift; done
89+
90+
# check required parameters
91+
if [ -z "${TRIGGER_SECRET}" ]; then
92+
echo "TRIGGER_SECRET is unset"; usage
93+
exit 1
94+
else
95+
echo "TRIGGER_SECRET=${TRIGGER_SECRET}"
96+
fi
97+
98+
if [ -z "${PROJECT_KEY}" ]; then
99+
echo "PROJECT_KEY is unset"; usage
100+
exit 1
101+
else
102+
echo "PROJECT_KEY=${PROJECT_KEY}"
103+
fi
104+
105+
if [ -z "${BITBUCKET_URL}" ]; then
106+
echo "BITBUCKET_URL is unset"; usage
107+
exit 1
108+
else
109+
echo "BITBUCKET_URL=${BITBUCKET_URL}"
110+
fi
111+
112+
if [ -z "${WEBHOOK_PROXY_URL}" ]; then
113+
echo "WEBHOOK_PROXY_URL is unset"; usage
114+
exit 1
115+
else
116+
echo "WEBHOOK_PROXY_URL=${WEBHOOK_PROXY_URL}"
117+
fi
118+
119+
if [ -z "${COMPONENT_ID}" ]; then
120+
echo "COMPONENT_ID is unset"; usage
121+
exit 1
122+
else
123+
echo "COMPONENT_ID=${COMPONENT_ID}"
124+
fi
125+
126+
if [ -z "${BRANCH}" ]; then
127+
echo "BRANCH is unset"; usage
128+
exit 1
129+
else
130+
echo "BRANCH=${BRANCH}"
131+
fi
132+
133+
if [ -z "${BASIC_AUTH_USER}" ]; then
134+
echo "BASIC_AUTH_USER is unset"; usage
135+
exit 1
136+
else
137+
echo "BASIC_AUTH_USER=${BASIC_AUTH_USER}"
138+
fi
139+
140+
if [ -z "${BASIC_AUTH_PWD}" ]; then
141+
echo "BASIC_AUTH_PWD is unset"; usage
142+
exit 1
143+
else
144+
echo "BASIC_AUTH_PWD=${BASIC_AUTH_PWD}"
145+
fi
146+
147+
if [ -z "${GIT_URL_SSH}" ]; then
148+
echo "GIT_URL_SSH is unset"; usage
149+
exit 1
150+
else
151+
echo "GIT_URL_SSH=${GIT_URL_SSH}"
152+
fi
153+
154+
if [ -z "${GIT_URL_HTTP}" ]; then
155+
echo "GIT_URL_HTTP is unset"; usage
156+
exit 1
157+
else
158+
echo "GIT_URL_HTTP=${GIT_URL_HTTP}"
159+
fi
160+
161+
if [ -z "${GROUP_ID}" ]; then
162+
echo "GROUP_ID is unset"; usage
163+
exit 1
164+
else
165+
echo "GROUP_ID=${GROUP_ID}"
166+
fi
167+
168+
if [ -z "${PACKAGE_NAME}" ]; then
169+
echo "PACKAGE_NAME is unset"; usage
170+
exit 1
171+
else
172+
echo "PACKAGE_NAME=${PACKAGE_NAME}"
173+
fi
174+
175+
if [ -z "${ODS_NAMESPACE}" ]; then
176+
echo "ODS_NAMESPACE is unset"; usage
177+
exit 1
178+
else
179+
echo "ODS_NAMESPACE=${ODS_NAMESPACE}"
180+
fi
181+
182+
if [ -z "${ODS_BITBUCKET_PROJECT}" ]; then
183+
echo "ODS_BITBUCKET_PROJECT is unset"; usage
184+
exit 1
185+
else
186+
echo "ODS_BITBUCKET_PROJECT=${ODS_BITBUCKET_PROJECT}"
187+
fi
188+
189+
if [ -z "${ODS_IMAGE_TAG}" ]; then
190+
echo "ODS_IMAGE_TAG is unset"; usage
191+
exit 1
192+
else
193+
echo "ODS_IMAGE_TAG=${ODS_IMAGE_TAG}"
194+
fi
195+
196+
if [ -z "${ODS_GIT_REF}" ]; then
197+
echo "ODS_GIT_REF is unset"; usage
198+
exit 1
199+
else
200+
echo "ODS_GIT_REF=${ODS_GIT_REF}"
201+
fi
202+
203+
if [ -z "${ADMIN_GROUP}" ]; then
204+
echo "ADMIN_GROUP is unset"; usage
205+
exit 1
206+
else
207+
echo "ADMIN_GROUP=${ADMIN_GROUP}"
208+
fi
209+
210+
if [ -z "${USER_GROUP}" ]; then
211+
echo "USER_GROUP is unset"; usage
212+
exit 1
213+
else
214+
echo "USER_GROUP=${USER_GROUP}"
215+
fi
216+
217+
WEBHOOK_ENDPOINT="$WEBHOOK_PROXY_URL/build?trigger_secret=$TRIGGER_SECRET&jenkinsfile_path=release-manager/Jenkinsfile&component=ods-qs-$COMPONENT_ID"
218+
echo "WEBHOOK_ENDPOINT=${WEBHOOK_ENDPOINT}"
219+
COMPONENT_TYPE="release-manager"
220+
REPO_NAME="$PROJECT_KEY-$COMPONENT_ID"
221+
REPO_DESCRIPTION="Automatically created repository for project $PROJECT_KEY"
222+
223+
generate_provision_repo_post_data()
224+
{
225+
cat <<EOF
226+
{
227+
"env" : [ {
228+
"name" : "component_type",
229+
"value" : "$COMPONENT_TYPE"
230+
}, {
231+
"name" : "component_id",
232+
"value" : "$COMPONENT_ID"
233+
}, {
234+
"name" : "git_url_ssh",
235+
"value" : "$GIT_URL_SSH"
236+
}, {
237+
"name" : "git_url_http",
238+
"value" : "$GIT_URL_HTTP"
239+
}, {
240+
"name" : "GROUP_ID",
241+
"value" : "$GROUP_ID"
242+
}, {
243+
"name" : "PROJECT_ID",
244+
"value" : "$PROJECT_KEY"
245+
}, {
246+
"name" : "PACKAGE_NAME",
247+
"value" : "$PACKAGE_NAME"
248+
}, {
249+
"name" : "ODS_NAMESPACE",
250+
"value" : "$ODS_ODS_NAMESPACE"
251+
}, {
252+
"name" : "ODS_BITBUCKET_PROJECT",
253+
"value" : "$ODS_BITBUCKET_PROJECT"
254+
}, {
255+
"name" : "ODS_IMAGE_TAG",
256+
"value" : "$ODS_IMAGE_TAG"
257+
}, {
258+
"name" : "ODS_GIT_REF",
259+
"value" : "$ODS_GIT_REF"
260+
} ],
261+
"branch" : "$BRANCH",
262+
"repository" : "ods-quickstarters",
263+
"project" : "$PROJECT_KEY",
264+
"url" : "$WEBHOOK_ENDPOINT"
265+
}
266+
}
267+
EOF
268+
}
269+
270+
echo "Calling the repository creation script"
271+
sh ./create-bitbucket-repository.sh -k $PROJECT_KEY -n $REPO_NAME -b $BITBUCKET_URL -u $BASIC_AUTH_USER -p $BASIC_AUTH_PWD -ag $ADMIN_GROUP -ug $USER_GROUP
272+
273+
echo "Provision release manager repository ${REPO_NAME} for project ${PROJECT_KEY} through Webhook Proxy ${WEBHOOK_ENDPOINT}"
274+
curl --silent \
275+
--header 'Accept: application/json' \
276+
--header 'Content-Type: application/json' \
277+
--url "${WEBHOOK_ENDPOINT}" \
278+
--data "$(generate_provision_repo_post_data)"
279+
280+
281+

0 commit comments

Comments
 (0)