summaryrefslogtreecommitdiffstats
path: root/deployment/scripts/install_openshift_ansible.sh
diff options
context:
space:
mode:
Diffstat (limited to 'deployment/scripts/install_openshift_ansible.sh')
-rwxr-xr-xdeployment/scripts/install_openshift_ansible.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/deployment/scripts/install_openshift_ansible.sh b/deployment/scripts/install_openshift_ansible.sh
new file mode 100755
index 00000000..c258587a
--- /dev/null
+++ b/deployment/scripts/install_openshift_ansible.sh
@@ -0,0 +1,35 @@
+#! /bin/bash
+#
+# List of expected input args:
+# - $1 is an env dir, i.e '/home/username/.../.tox/ocp3.6'
+# - $2 is a tag or PR to checkout from,
+# 1) TAG -> i.e. 'openshift-ansible-3.6.173.0.96-1' for OCP v3.6
+# See list of tags here: https://github.com/openshift/openshift-ansible/tags
+# 2) PR -> 'pull/12345/head'. Where '12345' is ID of a PR.
+# See list of PRs here: https://github.com/openshift/openshift-ansible/pulls
+# Note that PR is checked out, not cherry-picked.
+
+OPENSHIFT_ANSIBLE_GIT_URL='git://github.com/openshift/openshift-ansible.git'
+TARGET_DIR=$1/usr/share/ansible/openshift-ansible
+TAG=$2
+
+if [ -z "$TAG" ]; then
+ # NOTE(vponomar): get latest tag by 3.X branch
+ TAG=$(git ls-remote --tags $OPENSHIFT_ANSIBLE_GIT_URL \
+ "refs/tags/openshift-ansible-$(echo $1 | grep -oE '[^tox\/ocp]+$').*" \
+ | grep -v "\{\}" | sort -t / -k 3 -V | tail -n 1 | awk '{print $2}' )
+ echo "Custom Git tag hasn't been specified, using latest Git tag '$TAG'"
+else
+ echo "Using custom Git tag '$TAG'"
+fi
+
+TAG=${TAG/refs\/tags\//}
+
+if [[ ! -d $TARGET_DIR ]]; then
+ mkdir -p $TARGET_DIR
+ git clone --single-branch $OPENSHIFT_ANSIBLE_GIT_URL $TARGET_DIR
+fi
+
+cd $TARGET_DIR
+git fetch origin $TAG
+git reset --hard FETCH_HEAD