1#!/usr/local/bin/bash 2 3set -o pipefail -eux 4 5declare -a args 6IFS='/:' read -ra args <<< "$1" 7 8group="${args[0]}" 9 10command -v python 11python -V 12 13if [ "$2" = "2.7" ] 14then 15 command -v pip 16 pip --version 17 pip list --disable-pip-version-check 18else 19 command -v pip3 20 pip3 --version 21 pip3 list --disable-pip-version-check 22fi 23 24export PATH="${PWD}/bin:${PATH}" 25export PYTHONIOENCODING="UTF-8" 26export LC_ALL="en_US.utf-8" 27 28if [ "$2" = "2.7" ] 29then 30 pip install virtualenv 31 virtualenv --python /usr/bin/python2.7 ~/ansible-venv 32else 33 pip3 install virtualenv 34 virtualenv --python /usr/bin/python"$2" ~/ansible-venv 35fi 36 37set +ux 38. ~/ansible-venv/bin/activate 39set -ux 40 41if [ "$2" = "2.7" ] 42then 43 if [ "$3" = "devel" ] 44 then 45 pip install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check 46 else 47 git clone https://github.com/ansible/ansible.git 48 cd "ansible" 49 git checkout "stable-$3" 50 source hacking/env-setup 51 pip install paramiko PyYAML Jinja2 httplib2 six 52 fi 53else 54 if [ "$3" = "devel" ] 55 then 56 pip3 install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check 57 else 58 git clone https://github.com/ansible/ansible.git 59 cd "ansible" 60 git checkout "stable-$3" 61 source hacking/env-setup 62 pip3 install paramiko PyYAML Jinja2 httplib2 six 63 fi 64fi 65 66TEST_DIR="${HOME}/.ansible/ansible_collections/azure/azcollection" 67mkdir -p "${TEST_DIR}" 68cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}" 69cd "${TEST_DIR}" 70mkdir -p shippable/testresults 71 72if [ "$2" = "2.7" ] 73then 74 pip install --upgrade pip 75 pip install -I -r "${TEST_DIR}/requirements-azure.txt" 76 pip3 install setuptools 77 pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt" 78 pip3 list 79else 80 pip3 install -I -r "${TEST_DIR}/requirements-azure.txt" 81 pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt" 82 pip3 list 83fi 84 85timeout=60 86 87if [ "$4" = "all" ] 88then 89 echo "All module need test" 90else 91 path_dir="${TEST_DIR}/tests/integration/targets/" 92 for item in "$path_dir"* 93 do 94 if [ "${item}" = "$path_dir""$4" ] 95 then 96 echo "PASS" 97 else 98 echo " " >> "${item}"/aliases 99 echo "disabled" >> "${item}"/aliases 100 fi 101 done 102fi 103echo '--------------------------------------------' 104ansible --version 105echo '--------------------------------------------' 106 107ansible-test env --dump --show --timeout "${timeout}" --color -v 108 109cat <<EOF >> "${TEST_DIR}"/tests/integration/cloud-config-azure.ini 110[default] 111AZURE_CLIENT_ID:${AZURE_CLIENT_ID} 112AZURE_SECRET:${AZURE_SECRET} 113AZURE_SUBSCRIPTION_ID:${AZURE_SUBSCRIPTION_ID} 114AZURE_TENANT:${AZURE_TENANT} 115RESOURCE_GROUP:${RESOURCE_GROUP} 116RESOURCE_GROUP_SECONDARY:${RESOURCE_GROUP_SECONDARY} 117EOF 118 119if [ "sanity" = "${group}" ] 120then 121 ansible-test sanity --color -v --junit 122else 123 ansible-test integration --color -v --retry-on-error "shippable/azure/group${group}/" --allow-destructive 124fi 125