11#! /usr/bin/env bash
2+
23set -e
34
4- DOCKERTAG= ${TRAVIS_TAG :- latest}
5- BUILD_NUMBER= ${TRAVIS_BUILD_NUMBER :- 0}
6- COMMIT= ${TRAVIS_PULL_REQUEST_SHA :- ${TRAVIS_COMMIT :- unknown} }
7- MINVERBUILDMETADATA= " build. ${BUILD_NUMBER} . ${COMMIT} "
5+ LOCAL_IMAGE= " sql-stream-store-server "
6+ LOCAL= " ${LOCAL_IMAGE} :latest "
7+
8+ REMOTE_IMAGE= " sql-stream-store/server "
89
910docker build \
10- --build-arg MINVERBUILDMETADATA=$MINVERBUILDMETADATA \
1111 --build-arg MYGET_API_KEY=$MYGET_API_KEY \
12- --tag sql-stream-store-server: ${DOCKERTAG } \
12+ --tag ${LOCAL } \
1313 .
1414
15- docker images --filter=reference=" sql-stream-store-server:${DOCKERTAG} "
15+ VERSION=$( docker run --entrypoint=cat ${LOCAL} /app/.version)
16+
17+ SEMVER_REGEX=" ^(0|[1-9][0-9]*)\\ .(0|[1-9][0-9]*)\\ .(0|[1-9][0-9]*)(\\ -[0-9A-Za-z-]+(\\ .[0-9A-Za-z-]+)*)?(\\ +[0-9A-Za-z-]+(\\ .[0-9A-Za-z-]+)*)?$"
18+
19+ [[ $VERSION =~ $SEMVER_REGEX ]]
20+
21+ LATEST=" ${REMOTE_IMAGE} :latest"
22+ MAJOR=" ${REMOTE_IMAGE} :${BASH_REMATCH[1]} "
23+ MAJOR_MINOR=" ${REMOTE_IMAGE} :${BASH_REMATCH[1]} .${BASH_REMATCH[2]} "
24+ MAJOR_MINOR_PATCH=" ${REMOTE_IMAGE} :${BASH_REMATCH[1]} .${BASH_REMATCH[2]} .${BASH_REMATCH[3]} "
25+ MAJOR_MINOR_PATCH_PRE=" ${REMOTE_IMAGE} :${BASH_REMATCH[1]} .${BASH_REMATCH[2]} .${BASH_REMATCH[3]}${BASH_REMATCH[4]} "
26+
27+ if [[ -n $TRAVIS_TAG && -z ${BASH_REMATCH[4]} ]]; then
28+ echo " Detected a tag with no prerelease."
29+ docker tag $LOCAL $LATEST
30+ docker tag $LOCAL $MAJOR_MINOR_PATCH
31+ docker tag $LOCAL $MAJOR_MINOR
32+ if [[ ${BASH_REMATCH[1]} != " 0" ]]; then
33+ docker tag $LOCAL $MAJOR
34+ else
35+ echo " Detected unstable version."
36+ fi
37+ else
38+ echo " Detected a prerelease."
39+ docker tag $LOCAL $MAJOR_MINOR_PATCH_PRE
40+ fi
41+
42+ docker images --filter=reference=" ${REMOTE_IMAGE} "
0 commit comments