-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·75 lines (57 loc) · 1.93 KB
/
build.sh
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
#!/bin/bash -x
if [ -f VAR/JAVA_VERSION ]; then
export JAVA_VERSION=`cat VAR/JAVA_VERSION`
fi
if [ -f VAR/JAVA_BUILD ]; then
export JAVA_BUILD=`cat VAR/JAVA_BUILD`
fi
if [ -f VAR/JAVA_UPDATE ]; then
export JAVA_UPDATE=`cat VAR/JAVA_UPDATE`
fi
function fix_dockerfile_version() {
if [ "v${GO_DEPENDENCY_LABEL_JAVA_BASE_CONTAINER}" = "v" ]; then
CONTAINER_LABEL=latest
else
CONTAINER_LABEL="v${GO_DEPENDENCY_LABEL_JAVA_BASE_CONTAINER}"
fi
sed "s#FROM ubirch/java#FROM ubirch/java:${CONTAINER_LABEL}#g" Dockerfile > Dockerfile.v${GO_PIPELINE_LABEL}
diff Dockerfile Dockerfile.v${GO_PIPELINE_LABEL}
}
# build the docker container
function build_container() {
fix_dockerfile_version
echo "Building Maven container with JAVA_VERSION=${JAVA_VERSION} JAVA_UPDATE=${JAVA_UPDATE} JAVA_BUILD=${JAVA_BUILD}"
mkdir -p VAR && docker build --build-arg JAVA_VERSION=${JAVA_VERSION:=8} --build-arg VCS_REF=`git rev-parse --short HEAD` --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` -t ubirch/maven-build:v${GO_PIPELINE_LABEL} -f Dockerfile.v${GO_PIPELINE_LABEL} .
if [ $? -eq 0 ]; then
echo ${JAVA_VERSION:=8} > VAR/JAVA_VERSION
echo ${JAVA_UPDATE:=77} > VAR/JAVA_UPDATE
echo ${JAVA_BUILD:=03} > VAR/JAVA_BUILD
echo ${NEW_LABEL} > VAR/${GO_PIPELINE_NAME}_${GO_STAGE_NAME}
else
echo "Docker build failed"
exit 1
fi
}
# publish the new docker container
function publish_container() {
echo "Publishing Docker Container with version: ${GO_PIPELINE_LABEL}"
docker push ubirch/maven-build:v${GO_PIPELINE_LABEL} && docker push ubirch/maven-build
if [ $? -eq 0 ]; then
echo ${NEW_LABEL} > VAR/GO_PIPELINE_NAME_${GO_PIPELINE_NAME}
else
echo "Docker push failed"
exit 1
fi
}
case "$1" in
build)
build_container
;;
publish)
publish_container
;;
*)
echo "Usage: $0 {build|publish}"
exit 1
esac
exit 0