@@ -8,6 +8,8 @@ baseDir="$(pwd)"
88# docker hub organization/user from where to pull/push images
99org=openroad
1010
11+ DOCKER_CMD=" docker"
12+
1113_help () {
1214 cat << EOF
1315usage: $0 [CMD] [OPTIONS]
@@ -24,8 +26,7 @@ usage: $0 [CMD] [OPTIONS]
2426 'builder': os + packages to compile app +
2527 copy source code and build app
2628 -threads Max number of threads to use if compiling.
27- -sha Use git commit sha as the tag image. Default is
28- 'latest'.
29+ Default = \$ (nproc)
2930 -ci Install CI tools in image
3031 -h -help Show this message and exits
3132 -username Docker Username
3637}
3738
3839_setup () {
39- commitSha=" $( git rev-parse HEAD | tr -cd ' a-zA-Z0-9-' ) "
4040 case " ${os} " in
4141 " ubuntu20.04" )
4242 osBaseImage=" ubuntu:20.04"
@@ -50,9 +50,10 @@ _setup() {
5050 ;;
5151 esac
5252 imageName=" ${IMAGE_NAME_OVERRIDE:- " ${org} /flow-${os} -${target} " } "
53- imageTag=" ${commitSha} "
54- if [[ " ${tag} " != " NONE" ]]; then
53+ if [[ " ${tag} " != " " ]]; then
5554 imageTag=" ${tag} "
55+ else
56+ imageTag=$( ./etc/DockerTag.sh -dev)
5657 fi
5758 case " ${target} " in
5859 " builder" | " master" )
@@ -78,7 +79,7 @@ _setup() {
7879
7980_create () {
8081 echo " Create docker image ${imagePath} using ${file} "
81- docker build \
82+ ${DOCKER_CMD} build \
8283 --file " ${file} " \
8384 --tag " ${imagePath} " \
8485 ${buildArgs} \
@@ -95,43 +96,32 @@ _push() {
9596 echo " Missing required -password=<PASS> argument"
9697 _help
9798 fi
98- docker login --username ${username} --password ${password}
99- if [[ " ${tag} " == " NONE " ]] ; then
100- tag= " latest "
99+ if [[ " ${target} " != " dev " ]] && [[ " ${target} " != " master " ]] ; then
100+ echo " Target ${target} is not valid candidate for push to Docker Hub. " >&2
101+ _help
101102 fi
102- mkdir -p build
103- case " ${target} " in
104- " dev" )
105- ./etc/DockerHelper.sh create -os=${os} -ci -target=${target} \
106- 2>&1 | tee build/create-${os} -${target} -${tag} .log
107- docker push ${imagePath}
108- ;;
109103
110- " master" )
111- # Create dev image needed as a base for builder image
112- ./etc/DockerHelper.sh create -os=${os} -target=dev \
113- 2>&1 | tee build/create-${os} -dev-${target} -${tag} .log
114- # Create builder image
115- ./etc/DockerHelper.sh create -os=${os} -target=builder \
116- 2>&1 | tee build/create-${os} -${target} -${tag} .log
104+ ${DOCKER_CMD} login --username " ${username} " --password " ${password} "
117105
118- docker push ${org} /flow-${os} -dev:${commitSha}
106+ if [[ " ${tag} " == " " ]]; then
107+ tag=$( ./etc/DockerTag.sh -dev)
108+ fi
119109
120- docker tag ${org} /flow-${os} -dev:${commitSha} ${org} /flow-${os} -dev:latest
121- docker push ${org} /flow-${os} -dev:latest
110+ mkdir -p build
111+ ./etc/DockerHelper.sh create -os=${os} -target=dev -tag=${tag} -ci \
112+ 2>&1 | tee build/create-${os} -dev-${tag} .log
122113
123- docker tag ${org} /flow-${os} -builder:${commitSha} ${org} /orfs:${commitSha}
124- docker push ${org} /orfs:${commitSha}
114+ ${DOCKER_CMD} push " ${org} /flow-${os} -dev:${tag} "
125115
126- docker tag ${org} /flow-${os} -builder:${commitSha} ${org} /orfs:${tag}
127- docker push ${org} /orfs:${tag}
128- ;;
116+ if [[ " ${target} " == " master" ]]; then
117+ tag=$( ./etc/DockerTag.sh -master)
118+ # Create builder image
119+ ./etc/DockerHelper.sh create -os=${os} -target=builder \
120+ 2>&1 | tee build/create-${os} -${target} -${tag} .log
129121
130- * )
131- echo " Target ${target} is not valid candidate for push to Docker Hub." >&2
132- _help
133- ;;
134- esac
122+ ${DOCKER_CMD} tag ${org} /flow-${os} -builder:${imageTag} ${org} /orfs:${tag}
123+ ${DOCKER_CMD} push ${org} /orfs:${tag}
124+ fi
135125}
136126
137127#
161151os=" ubuntu22.04"
162152target=" dev"
163153numThreads=" -1"
164- tag=" NONE "
154+ tag=" "
165155options=" "
166156
167157while [ " $# " -gt 0 ]; do
0 commit comments