summaryrefslogtreecommitdiff
path: root/lib/ansible/modules/extras/test/utils/shippable/integration.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/extras/test/utils/shippable/integration.sh')
-rwxr-xr-xlib/ansible/modules/extras/test/utils/shippable/integration.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/ansible/modules/extras/test/utils/shippable/integration.sh b/lib/ansible/modules/extras/test/utils/shippable/integration.sh
new file mode 100755
index 0000000000..cf10e681bf
--- /dev/null
+++ b/lib/ansible/modules/extras/test/utils/shippable/integration.sh
@@ -0,0 +1,55 @@
+#!/bin/bash -eux
+
+set -o pipefail
+
+ansible_repo_url="https://github.com/ansible/ansible.git"
+
+is_pr="${IS_PULL_REQUEST}"
+build_dir="${SHIPPABLE_BUILD_DIR}"
+repo="${REPO_NAME}"
+
+if [ "${is_pr}" != "true" ]; then
+ echo "Module integration tests are only supported on pull requests."
+ exit 0
+fi
+
+case "${repo}" in
+ "ansible-modules-core")
+ this_module_group="core"
+ other_module_group="extras"
+ ;;
+ "ansible-modules-extras")
+ this_module_group="extras"
+ other_module_group="core"
+ ;;
+ *)
+ echo "Unsupported repo name: ${repo}"
+ exit 1
+ ;;
+esac
+
+modules_tmp_dir="${build_dir}.tmp"
+this_modules_dir="${build_dir}/lib/ansible/modules/${this_module_group}"
+other_modules_dir="${build_dir}/lib/ansible/modules/${other_module_group}"
+
+cd /
+mv "${build_dir}" "${modules_tmp_dir}"
+git clone "${ansible_repo_url}" "${build_dir}"
+cd "${build_dir}"
+rmdir "${this_modules_dir}"
+mv "${modules_tmp_dir}" "${this_modules_dir}"
+mv "${this_modules_dir}/shippable" "${build_dir}"
+git submodule init "${other_modules_dir}"
+git submodule sync "${other_modules_dir}"
+git submodule update "${other_modules_dir}"
+
+pip install -r test/utils/shippable/modules/generate-tests-requirements.txt --upgrade
+pip list
+
+source hacking/env-setup
+
+test/utils/shippable/modules/generate-tests "${this_module_group}" --verbose --output /tmp/integration.sh >/dev/null
+
+if [ -f /tmp/integration.sh ]; then
+ /bin/bash -eux /tmp/integration.sh
+fi