@@ -21,19 +21,46 @@ HOME="`pwd -P`"
21
21
HOME=` cd ${HOME} ; pwd`
22
22
cd ..
23
23
24
- tag =$1
24
+ version =$1
25
25
26
- if [ -z " $tag " ]; then
27
- echo " Please provide a tag "
26
+ if [ -z " $version " ] || ! [[ $version =~ ^[0-9]+ \. [0-9]+ \. [0-9] + (-. * ) ? $ ] ]; then
27
+ echo " Please provide a valid version number "
28
28
exit 1
29
29
else
30
- # Build the docker image
31
- docker build -t cinchapi/concourse:$tag -f Dockerfile .
30
+ # Determine all the docker tags to publish
31
+ major=$( echo ${version} | cut -d . -f 1)
32
+ minor=$( echo ${version} | cut -d . -f 2)
33
+ patch=$( echo ${version} | cut -d . -f 3 | cut -d ' -' -f 1)
34
+ suffix=$( echo ${version} | cut -d ' -' -f 2-)
35
+ if [[ " $suffix " == " $version " ]]; then
36
+ suffix=" "
37
+ tags=" latest " # No suffix indicates we should push a latest tag
38
+ else
39
+ suffix=" -" $suffix
40
+ tags=" "
41
+ fi
32
42
33
- # Push the docker image to docker hub
34
- docker login -e
[email protected] -u
$DOCKER_USER -p
$DOCKER_PASS
35
- docker push cinchapi/concourse:$tag
43
+ tags=" $tags$major$suffix $major .$minor$suffix $major .$minor .$patch$suffix "
44
+
45
+ # Build the main docker image
46
+ image=$( date +%Y%m%d%H%M%S)
47
+ docker build -t $image -f Dockerfile .
36
48
37
- # TODO: check if tag indicates a master build and push the latest tag
49
+ # Build the -onbuild image using the image from the previous step as a base
50
+ temp=Dockerfile.onbuild.temp
51
+ sed " 1s/.*/FROM $image /" Dockerfile.onbuild > $temp
52
+ docker build -t $image -onbuild -f $temp --pull=false .
53
+ rm $temp
54
+
55
+ # Push the image to docker hub with each of the tags
56
+ docker login -e
[email protected] -u
$DOCKER_USER -p
$DOCKER_PASS
57
+ for tag in $tags ; do
58
+ for type in " " " -onbuild" ; do
59
+ name=cinchapi/concourse:$tag$type
60
+ docker tag $image$type $name
61
+ docker push $name
62
+ echo " Pushed $name "
63
+ done
64
+ done
38
65
exit 0
39
66
fi
0 commit comments