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