-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·86 lines (76 loc) · 2.46 KB
/
build.sh
File metadata and controls
executable file
·86 lines (76 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash -e
export BRANCH=master
export IMAGE_NAME=drydock/u14pyt
export RES_DOCKER_CREDS=docker-creds
export RES_REPO=u14pyt-repo
export RES_IMAGE=u14pyt-img
export UP_IMAGE=u14-img
findUpstreamBaseVersion() {
echo "Find Latest Version for" $UP_IMAGE
export versionName=$(cat ./IN/$UP_IMAGE/version.json | jq -r '.version.versionName')
echo "Completed find Latest Version for" $UP_IMAGE
}
dockerLogin() {
echo "Extracting docker creds"
. ./IN/$RES_DOCKER_CREDS/integration.env
echo "logging into Docker with username" $username
docker login -u $username -p $password -e $email
echo "Completed Docker login"
}
checkIfTagBuild() {
echo "Check Tag Version for" $RES_REPO
export IS_GIT_TAG=$(cat ./IN/$RES_REPO/version.json | jq -r '.version.propertyBag.shaData.isGitTag')
if [ "$IS_GIT_TAG" = true ]; then
echo "This is a TAG build"
export GIT_TAG=$(cat ./IN/$RES_REPO/version.json | jq -r '.version.propertyBag.shaData.gitTagName')
export GIT_TAG_MSG=$(cat ./IN/$RES_REPO/version.json | jq -r '.version.propertyBag.shaData.gitTagMessage')
echo "Tag Name: " $GIT_TAG
echo "Tag Message: " $GIT_TAG_MSG
fi
echo "Completed check for Tag, GIT_TAG: " $GIT_TAG
}
createImage() {
if [ "$IS_GIT_TAG" = true ]; then
echo "Pulling " $IMAGE_NAME:tip
sudo docker pull $IMAGE_NAME:tip
sudo docker tag -f $IMAGE_NAME:tip $IMAGE_NAME:$GIT_TAG
#sudo docker tag -f $IMAGE_NAME:tip $IMAGE_NAME:prod
else
echo "Starting Docker build for" $IMAGE_NAME:tip
cd ./IN/$RES_REPO/gitRepo
sed -i "s/{{%TAG%}}/$versionName/g" Dockerfile
sudo docker build -t=$IMAGE_NAME:tip .
echo "Completed Docker build for" $IMAGE_NAME:$GIT_TAG
fi
}
dockerPush() {
if [ "$IS_GIT_TAG" = true ];
then
echo "Pushing Tag " $IMAGE_NAME:prod
sudo docker push $IMAGE_NAME:$GIT_TAG
#sudo docker push -f $IMAGE_NAME:prod
echo "Completed Pushing Tag" $IMAGE_NAME:prod
else
echo "Pushing Tag " $IMAGE_NAME:tip
sudo docker push $IMAGE_NAME:tip
echo "Completed Pushing Tag" $IMAGE_NAME:tip
fi
}
createOutState() {
# this is to make sure we don't trigger if tag build happens
if [ "$IS_GIT_TAG" = true ]; then
echo "Creating a state file for" $RES_IMAGE
echo versionName=$GIT_TAG > /build/state/$RES_IMAGE.env
cat /build/state/$RES_IMAGE.env
echo "Completed creating a state file for" $RES_IMAGE
fi
}
main() {
findUpstreamBaseVersion
dockerLogin
checkIfTagBuild
createImage
dockerPush
createOutState
}
main