Created
March 9, 2016 00:18
-
-
Save devynspencer/7fd741794c436639f1a8 to your computer and use it in GitHub Desktop.
TravisCI configuration for testing Ansible via docker images
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
sudo: required | |
env: | |
- distribution: centos | |
version: 6 | |
init: /sbin/init | |
run_opts: "" | |
- distribution: centos | |
version: 7 | |
init: /usr/lib/systemd/systemd | |
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" | |
- distribution: ubuntu | |
version: 14.04 | |
init: /sbin/init | |
run_opts: "" | |
- distribution: ubuntu | |
version: 12.04 | |
init: /sbin/init | |
run_opts: "" | |
services: | |
- docker | |
before_install: | |
# Pull container | |
- 'sudo docker pull ${distribution}:${version}' | |
# Customize container | |
- 'sudo docker build --rm=true --file=tests/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests' | |
script: | |
- container_id=$(mktemp) | |
# Run container in detached state | |
- 'sudo docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} ${distribution}-${version}:ansible "${init}" > "${container_id}"' | |
# Ansible syntax check. | |
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check' | |
# Test role. | |
- 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml' | |
# Test role idempotence. | |
- > | |
sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | |
| grep -q 'changed=0.*failed=0' | |
&& (echo 'Idempotence test: pass' && exit 0) | |
|| (echo 'Idempotence test: fail' && exit 1) | |
# Clean up | |
- 'sudo docker stop "$(cat ${container_id})"' | |
notifications: | |
webhooks: https://galaxy.ansible.com/api/v1/notifications/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment