--- sudo: required language: python services: - docker env: global: - role: weareinteractive.apt matrix: - distribution: Ubuntu distribution_version: "18.04" init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" - distribution: Ubuntu distribution_version: "16.04" init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" - distribution: Ubuntu distribution_version: "14.04" init: /sbin/init run_opts: "" - distribution: Debian distribution_version: "9" init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" - distribution: Debian distribution_version: "8" init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" before_install: - sudo apt-get update - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce - docker pull ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}" script: - container_id=$(mktemp) # Start The Built Container In The Background - docker run -d -v "${PWD}":/etc/ansible/roles/${role}:ro ${run_opts} ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}" "${init}" > "${container_id}" # Print ansible version - docker exec -t "$(cat ${container_id})" env TERM=xterm ansible --version # Ansible syntax check. - 'docker exec -t "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/${role}/tests/main.yml --syntax-check' # Test role. - 'docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook /etc/ansible/roles/${role}/tests/main.yml' # Test Idempotence - idempotence=$(mktemp) - docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/${role}/tests/main.yml | tee -a ${idempotence} - > tail ${idempotence} | grep -q 'failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1) notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/