Skip to content

Commit d40ce11

Browse files
committed
Generalize docker image maintenance process
1 parent c375147 commit d40ce11

File tree

2 files changed

+40
-9
lines changed

2 files changed

+40
-9
lines changed

Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export MAVEN_METADATA_URL = maven.sequenceiq.com/releases/com/sequenceiq/cloudbreak-shell/maven-metadata.xml
2+
export DOCKER_IMAGE = sequenceiq/cb-shell
3+
4+
dockerhub:
5+
./deploy.sh
6+
7+
.PHONY: dockerhub

deploy.sh

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,53 @@
1-
: ${DOCKERHUB_USERNAME:?"is required!"}
2-
: ${DOCKERHUB_PASSWORD:?"is required!"}
1+
#!/bin/bash
2+
3+
set -eo pipefail
4+
if [[ "$TRACE" ]]; then
5+
: ${START_TIME:=$(date +%s)}
6+
export START_TIME
7+
export PS4='+ [TRACE $BASH_SOURCE:$LINENO][ellapsed: $(( $(date +%s) - $START_TIME ))] '
8+
set -x
9+
fi
10+
11+
debug() {
12+
[[ "$DEBUG" ]] && echo "-----> $*" 1>&2 || :
13+
}
14+
315

416
install_deps() {
517
if ! dockerhub-tag --version &>/dev/null ;then
6-
echo "---> installing dockerhub-tag binary to /usr/local/bin" 1>&2
7-
curl -L https://github.com/progrium/dockerhub-tag/releases/download/v0.2.0/dockerhub-tag_0.2.0_Darwin_x86_64.tgz | tar -xz -C /usr/local/bin/
18+
debug "installing dockerhub-tag binary to /usr/local/bin"
19+
curl -L https://github.com/progrium/dockerhub-tag/releases/download/v0.2.0/dockerhub-tag_0.2.0_$(uname)_x86_64.tgz | tar -xz -C /usr/local/bin/
820
else
9-
echo "---> dockerhub-tag already installed" 1>&2
10-
fi
21+
debug "dockerhub-tag already installed"
22+
fi
23+
}
24+
25+
get_latest_maven_version() {
26+
curl -sL ${MAVEN_METADATA_URL} | sed -n '/<version>/ h; $ {x;s/ *<.\?version>//gp;}'
1127
}
1228

1329
new_version() {
1430
install_deps
15-
declare NEW_VERSION=${1:? version required}
31+
declare NEW_VERSION=${1:-$(get_latest_maven_version)}
32+
33+
debug "building docker image for version: $NEW_VERSION"
1634

1735
sed -i "/^ENV VERSION/ s/VERSION .*/VERSION ${NEW_VERSION}/" Dockerfile
1836

1937
git commit -m "Release ${NEW_VERSION}" Dockerfile
2038
git tag ${NEW_VERSION}
2139
git push origin master --tags
22-
23-
dockerhub-tag set sequenceiq/cb-shell $NEW_VERSION $NEW_VERSION /
40+
41+
dockerhub-tag set ${DOCKER_IMAGE} $NEW_VERSION $NEW_VERSION /
2442
}
2543

2644
main() {
45+
: ${MAVEN_METADATA_URL:?"required!"}
46+
: ${DOCKER_IMAGE:?"required!"}
47+
: ${DOCKERHUB_USERNAME:?"required!"}
48+
: ${DOCKERHUB_PASSWORD:?"required!"}
49+
: ${DEBUG:=1}
50+
2751
new_version "$@"
2852
}
2953

0 commit comments

Comments
 (0)