.travis.yml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ---
  2. services: docker
  3. env:
  4. - distro: centos7
  5. init: /usr/lib/systemd/systemd
  6. run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
  7. - distro: ubuntu1604
  8. init: /lib/systemd/systemd
  9. run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
  10. - distro: ubuntu1404
  11. init: /sbin/init
  12. run_opts: ""
  13. - distro: ubuntu1204
  14. init: /sbin/init
  15. run_opts: ""
  16. before_install:
  17. # Pull container.
  18. - 'docker pull geerlingguy/docker-${distro}-ansible:latest'
  19. script:
  20. - container_id=$(mktemp)
  21. # Run container in detached state.
  22. - 'docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'
  23. # Ansible syntax check.
  24. - 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'
  25. # Test role.
  26. - 'docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
  27. # Test role idempotence.
  28. - idempotence=$(mktemp)
  29. - docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence}
  30. - >
  31. tail ${idempotence}
  32. | grep -q 'changed=0.*failed=0'
  33. && (echo 'Idempotence test: pass' && exit 0)
  34. || (echo 'Idempotence test: fail' && exit 1)
  35. # Check if nginx is running.
  36. # TODO
  37. notifications:
  38. webhooks: https://galaxy.ansible.com/api/v1/notifications/