Files
offline_kubespray/collection/community/azure/tests/utils/ado/ado.sh
ByeonJungHun 360c6eef4a offline 작업
2024-02-19 16:02:29 +09:00

125 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o pipefail -eux
declare -a args
IFS='/:' read -ra args <<< "$1"
group="${args[0]}"
command -v python
python -V
if [ "$2" = "2.7" ]
then
command -v pip
pip --version
pip list --disable-pip-version-check
else
command -v pip3
pip3 --version
pip3 list --disable-pip-version-check
fi
export PATH="${PWD}/bin:${PATH}"
export PYTHONIOENCODING="UTF-8"
export LC_ALL="en_US.utf-8"
if [ "$2" = "2.7" ]
then
pip install virtualenv
virtualenv --python /usr/bin/python2.7 ~/ansible-venv
else
pip3 install virtualenv
virtualenv --python /usr/bin/python"$2" ~/ansible-venv
fi
set +ux
. ~/ansible-venv/bin/activate
set -ux
if [ "$2" = "2.7" ]
then
if [ "$3" = "devel" ]
then
pip install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check
else
git clone https://github.com/ansible/ansible.git
cd "ansible"
git checkout "stable-$3"
source hacking/env-setup
pip install paramiko PyYAML Jinja2 httplib2 six
fi
else
if [ "$3" = "devel" ]
then
pip3 install git+https://github.com/ansible/ansible.git@devel --disable-pip-version-check
else
git clone https://github.com/ansible/ansible.git
cd "ansible"
git checkout "stable-$3"
source hacking/env-setup
pip3 install paramiko PyYAML Jinja2 httplib2 six
fi
fi
TEST_DIR="${HOME}/.ansible/ansible_collections/azure/azcollection"
mkdir -p "${TEST_DIR}"
cp -aT "${SHIPPABLE_BUILD_DIR}" "${TEST_DIR}"
cd "${TEST_DIR}"
mkdir -p shippable/testresults
if [ "$2" = "2.7" ]
then
pip install --upgrade pip
pip install -I -r "${TEST_DIR}/requirements-azure.txt"
pip3 install setuptools
pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt"
pip3 list
else
pip3 install -I -r "${TEST_DIR}/requirements-azure.txt"
pip3 install -I -r "${TEST_DIR}/sanity-requirements-azure.txt"
pip3 list
fi
timeout=60
if [ "$4" = "all" ]
then
echo "All module need test"
else
path_dir="${TEST_DIR}/tests/integration/targets/"
for item in "$path_dir"*
do
if [ "${item}" = "$path_dir""$4" ]
then
echo "PASS"
else
echo " " >> "${item}"/aliases
echo "disabled" >> "${item}"/aliases
fi
done
fi
echo '--------------------------------------------'
ansible --version
echo '--------------------------------------------'
ansible-test env --dump --show --timeout "${timeout}" --color -v
cat <<EOF >> "${TEST_DIR}"/tests/integration/cloud-config-azure.ini
[default]
AZURE_CLIENT_ID:${AZURE_CLIENT_ID}
AZURE_SECRET:${AZURE_SECRET}
AZURE_SUBSCRIPTION_ID:${AZURE_SUBSCRIPTION_ID}
AZURE_TENANT:${AZURE_TENANT}
RESOURCE_GROUP:${RESOURCE_GROUP}
RESOURCE_GROUP_SECONDARY:${RESOURCE_GROUP_SECONDARY}
EOF
if [ "sanity" = "${group}" ]
then
ansible-test sanity --color -v --junit
else
ansible-test integration --color -v --retry-on-error "shippable/azure/group${group}/" --allow-destructive
fi