odoo/setup/odoo-playboook/roles/odoo/tests/run.sh

42 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
HERE=$(dirname $(readlink -m $0))
VENV=/opt/ansible-venv
CMD="$VENV/bin/ansible-playbook -i tests/inventory"
cd $HERE/..
# Configure environment
export PAGER=cat
# Configure Ansible
cat <<EOF > ansible.cfg
[defaults]
roles_path = ../
[ssh_connection]
pipelining=True
EOF
echo "== CHECK THE ROLE/PLAYBOOK'S SYNTAX =="
$CMD tests/test_$ODOO_INSTALL_TYPE.yml --syntax-check || exit 1
echo "== RUN THE ROLE/PLAYBOOK WITH ANSIBLE-PLAYBOOK =="
$CMD tests/test_$ODOO_INSTALL_TYPE.yml --connection=local --become -e "odoo_version=$ODOO_VERSION" || exit 1
echo "== CHECK THE SERVICE STATUS =="
sudo -E service odoo-$ODOO_INSTALL_TYPE status || exit 1
echo "== RUN THE ROLE/PLAYBOOK AGAIN, CHECKING TO MAKE SURE IT'S IDEMPOTENT =="
output_log=$ODOO_VERSION_$ODOO_INSTALL_TYPE.log
$CMD tests/test_${ODOO_INSTALL_TYPE}.yml --connection=local --become -e "odoo_version=$ODOO_VERSION" -v > $output_log || exit 1
grep -q 'changed=0.*failed=0' $output_log \
&& (echo 'IDEMPOTENCE TEST: OK' && exit 0) \
|| (echo 'IDEMPOTENCE TEST: FAILED' && cat $output_log && exit 1) || exit 1
echo "== CHECK THE SERVICE STATUS =="
sudo -E service odoo-$ODOO_INSTALL_TYPE status || exit 1
echo "== RUN THE ROLE/PLAYBOOK AGAIN BUT CHANGE THE CONFIGURATION AND CHECK IF THE SERVICE RESTART =="
$CMD tests/test_${ODOO_INSTALL_TYPE}_changed.yml --connection=local --become -e "odoo_version=$ODOO_VERSION" -v > $output_log || exit 1
grep -q 'changed=2.*failed=0' $output_log \
&& (echo 'RESTART TEST: OK' && exit 0) \
|| (echo 'RESTART TEST: FAILED' && cat $output_log && exit 1) || exit 1
echo "== CHECK THE SERVICE STATUS =="
sudo -E service odoo-$ODOO_INSTALL_TYPE status || exit 1
sleep 3 && wget http://localhost:8069 | exit 1
sudo -E service odoo-$ODOO_INSTALL_TYPE stop || exit 1