| #!/bin/bash -e |
| |
| # Use this script to rebuild the Dockerfiles and all variants for a particular |
| # release. Before running this, you must first delete the existing release |
| # directory. |
| # |
| # TODO: to conform with other similar setups, this likely needs to become |
| # "update.sh" and be taught how to derive the latest version (e.g. 1.2.0) from |
| # a given release (e.g. 1.2) and assemble a .travis.yml file dynamically. |
| # |
| # See other repos (e.g. httpd, cassandra) for update.sh examples. |
| |
| function usage() { |
| echo >&2 "usage: $0 -s statefun-version -f flink-version" |
| } |
| |
| function error() { |
| local msg="$1" |
| if [ -n "$2" ]; then |
| local code="$2" |
| else |
| local code=1 |
| fi |
| echo >&2 "$msg" |
| exit "$code" |
| } |
| |
| statefun_version= # Like 2.0.0 |
| flink_version= # Like 1.10.0 |
| |
| while getopts s:f:h arg; do |
| case "$arg" in |
| s) |
| statefun_version=$OPTARG |
| ;; |
| f) |
| flink_version=$OPTARG |
| ;; |
| h) |
| usage |
| exit 0 |
| ;; |
| \?) |
| usage |
| exit 1 |
| ;; |
| esac |
| done |
| |
| if [ -z "$statefun_version" ] || [ -z "$flink_version" ]; then |
| usage |
| exit 1 |
| fi |
| |
| gpg_key=`grep "$statefun_version" gpg_keys.txt | cut -d '=' -f2` |
| |
| if [ -z "$gpg_key" ]; then |
| error "Missing GPG key ID in gpg_keys.txt file for release $statefun_version" |
| fi |
| |
| function generate_dockerfile() { |
| local java_version="$1" |
| local dir="$statefun_version-java$java_version" |
| |
| echo -n >&2 "Generating Dockerfiles for StateFun version=$statefun_version, Flink version=$flink_version, Java version=$java_version ..." |
| rm -rf $dir |
| mkdir "$dir" |
| |
| cp -r template/* "$dir" |
| |
| sed \ |
| -e "s/%%STATEFUN_VERSION%%/$statefun_version/" \ |
| -e "s/%%FLINK_VERSION%%/$flink_version/" \ |
| -e "s/%%JAVA_VERSION%%/$java_version/" \ |
| -e "s/%%GPG_KEY%%/$gpg_key/" \ |
| "template/Dockerfile" > "$dir/Dockerfile" |
| |
| echo >&2 " done." |
| } |
| |
| generate_dockerfile 8 |
| generate_dockerfile 11 |