Add module integration tests on shippable.

This commit is contained in:
Matt Clay 2016-07-08 08:28:30 -07:00
parent 04bf0542cc
commit 2dafaab539
3 changed files with 106 additions and 0 deletions

View file

@ -0,0 +1,7 @@
#!/bin/bash -eux
set -o pipefail
source_root=$(python -c "from os import path; print(path.abspath(path.join(path.dirname('$0'), '../../..')))")
"${source_root}/test/utils/shippable/${TEST}.sh" 2>&1 | gawk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; fflush(); }'

View file

@ -0,0 +1,51 @@
#!/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 1
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 | /bin/bash -eux