summaryrefslogtreecommitdiffstats
path: root/src/pmdk/utils/docker/images/push-image.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/utils/docker/images/push-image.sh')
-rwxr-xr-xsrc/pmdk/utils/docker/images/push-image.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/pmdk/utils/docker/images/push-image.sh b/src/pmdk/utils/docker/images/push-image.sh
new file mode 100755
index 000000000..03b935213
--- /dev/null
+++ b/src/pmdk/utils/docker/images/push-image.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright 2016-2020, Intel Corporation
+
+#
+# push-image.sh - pushes the Docker image to the Docker Hub.
+#
+# The script utilizes $DOCKERHUB_USER and $DOCKERHUB_PASSWORD variables
+# to log in to Docker Hub. The variables can be set in the Travis project's
+# configuration for automated builds.
+#
+
+set -e
+
+source $(dirname $0)/../set-ci-vars.sh
+
+if [[ -z "$OS" ]]; then
+ echo "OS environment variable is not set"
+ exit 1
+fi
+
+if [[ -z "$OS_VER" ]]; then
+ echo "OS_VER environment variable is not set"
+ exit 1
+fi
+
+if [[ -z "$CI_CPU_ARCH" ]]; then
+ echo "CI_CPU_ARCH environment variable is not set"
+ exit 1
+fi
+
+if [[ -z "${DOCKERHUB_REPO}" ]]; then
+ echo "DOCKERHUB_REPO environment variable is not set"
+ exit 1
+fi
+
+TAG="1.10-${OS}-${OS_VER}-${CI_CPU_ARCH}"
+
+# Check if the image tagged with pmdk/OS-VER exists locally
+if [[ ! $(docker images -a | awk -v pattern="^${DOCKERHUB_REPO}:${TAG}\$" \
+ '$1":"$2 ~ pattern') ]]
+then
+ echo "ERROR: Docker image tagged ${DOCKERHUB_REPO}:${TAG} does not exists locally."
+ exit 1
+fi
+
+# Log in to the Docker Hub
+docker login -u="$DOCKERHUB_USER" -p="$DOCKERHUB_PASSWORD"
+
+# Push the image to the repository
+docker push ${DOCKERHUB_REPO}:${TAG}