.travis.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ---
  2. sudo: required
  3. env:
  4. - distribution: centos
  5. version: 6
  6. init: /sbin/init
  7. run_opts: ""
  8. # - distribution: centos
  9. # version: 7
  10. # init: /usr/lib/systemd/systemd
  11. # run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
  12. - distribution: ubuntu
  13. version: 14.04
  14. init: /sbin/init
  15. run_opts: ""
  16. - distribution: ubuntu
  17. version: 12.04
  18. init: /sbin/init
  19. run_opts: ""
  20. services:
  21. - docker
  22. before_install:
  23. # - sudo apt-get update
  24. # Pull container
  25. - 'sudo docker pull ${distribution}:${version}'
  26. # Customize container
  27. - 'sudo docker build --rm=true --file=tests/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests'
  28. script:
  29. - container_id=$(mktemp)
  30. # Run container in detached state
  31. - 'sudo docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} ${distribution}-${version}:ansible "${init}" > "${container_id}"'
  32. # Install required Galaxy roles.
  33. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-galaxy install geerlingguy.git'
  34. # Ansible syntax check.
  35. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'
  36. # Test role.
  37. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
  38. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
  39. # Test role idempotence.
  40. - >
  41. sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml
  42. | grep -q 'changed=0.*failed=0'
  43. && (echo 'Idempotence test: pass' && exit 0)
  44. || (echo 'Idempotence test: fail' && exit 1)
  45. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm sudo service gogs status'
  46. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm sudo service gogs restart'
  47. - sleep 10
  48. # Check if we get an installation page.
  49. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm curl http://localhost:3000/install'
  50. # Clean up
  51. - 'sudo docker stop "$(cat ${container_id})"'
  52. notifications:
  53. webhooks: https://galaxy.ansible.com/api/v1/notifications/