#!/bin/bash -ex # Run tests/ansible/all.yml under Ansible and Ansible-Mitogen TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-`pwd`}" TMPDIR="/tmp/ansible-tests-$$" ANSIBLE_VERSION="${ANSIBLE_VERSION:-2.4.3.0}" MITOGEN_TEST_DISTRO="${MITOGEN_TEST_DISTRO:-debian}" export PYTHONPATH="${PYTHONPATH}:${TRAVIS_BUILD_DIR}" # SSH passes these through to the container when run interactively, causing # stdout to get messed up with libc warnings. unset LANG LC_ALL function on_exit() { rm -rf "$TMPDIR" docker kill target || true } trap on_exit EXIT mkdir "$TMPDIR" echo travis_fold:start:docker_setup DOCKER_HOSTNAME="$(python ${TRAVIS_BUILD_DIR}/tests/show_docker_hostname.py)" docker run \ --rm \ --detach \ --publish 0.0.0.0:2201:22/tcp \ --name=target \ d2mw/mitogen-${MITOGEN_TEST_DISTRO}-test echo travis_fold:end:docker_setup echo travis_fold:start:job_setup pip install -U ansible=="${ANSIBLE_VERSION}" cd ${TRAVIS_BUILD_DIR}/tests/ansible chmod go= ${TRAVIS_BUILD_DIR}/tests/data/docker/mitogen__has_sudo_pubkey.key echo \ target \ ansible_host=$DOCKER_HOSTNAME \ ansible_port=2201 \ ansible_python_interpreter=/usr/bin/python2.7 \ ansible_user=mitogen__has_sudo_nopw \ ansible_password=has_sudo_nopw_password \ >> ${TMPDIR}/hosts # Build the binaries. make -C ${TRAVIS_BUILD_DIR}/tests/ansible [ ! "$(type -p sshpass)" ] && sudo apt install -y sshpass echo travis_fold:end:job_setup echo travis_fold:start:mitogen_linear /usr/bin/time ./mitogen_ansible_playbook.sh \ all.yml \ -vvv \ -i "${TMPDIR}/hosts" echo travis_fold:end:mitogen_linear echo travis_fold:start:vanilla_ansible /usr/bin/time ./run_ansible_playbook.sh \ all.yml \ -vvv \ -i "${TMPDIR}/hosts" echo travis_fold:end:vanilla_ansible