--- sudo: required services: - docker env: - distribution: centos version: 6 playbook: opensource - distribution: centos version: 6 playbook: template - distribution: centos version: 6 playbook: push - distribution: centos version: 7 playbook: opensource - distribution: centos version: 7 playbook: template - distribution: centos version: 7 playbook: push - distribution: ubuntu version: trusty playbook: opensource - distribution: ubuntu version: trusty playbook: template - distribution: ubuntu version: trusty playbook: push - distribution: ubuntu version: xenial playbook: opensource - distribution: ubuntu version: xenial playbook: template - distribution: ubuntu version: xenial playbook: push - distribution: debian version: jessie playbook: opensource - distribution: debian version: jessie playbook: template - distribution: debian version: jessie playbook: push - distribution: debian version: stretch playbook: opensource - distribution: debian version: stretch playbook: template - distribution: debian version: stretch playbook: push before_install: - 'sudo docker pull ${distribution}:${version}' - 'sudo docker build --no-cache --rm --file=tests/dockerfiles/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests' script: - container_id=$(mktemp) - 'sudo docker run --detach --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --volume="${PWD}":/etc/ansible/roles/ansible-role-nginx:ro ${distribution}-${version}:ansible > "${container_id}"' - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml --syntax-check' - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml' - > sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml | grep -q 'changed=0.*failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1) - 'sudo docker exec "$(cat ${container_id})" curl http://localhost/' - 'sudo docker rm -f "$(cat ${container_id})"' notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/