| 
					
				 | 
			
			
				@@ -3,44 +3,17 @@ services: docker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 env: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - distro: centos7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    init: /usr/lib/systemd/systemd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - distro: ubuntu1604 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    init: /lib/systemd/systemd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - distro: ubuntu1404 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    init: /sbin/init 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    run_opts: "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - distro: ubuntu1204 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    init: /sbin/init 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    run_opts: "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-before_install: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Pull container. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - 'docker pull geerlingguy/docker-${distro}-ansible:latest' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 script: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - container_id=$(mktemp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Run container in detached state. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - 'docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Ansible syntax check. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Test role. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - 'docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Test role idempotence. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - idempotence=$(mktemp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    tail ${idempotence} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    | grep -q 'changed=0.*failed=0' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    && (echo 'Idempotence test: pass' && exit 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    || (echo 'Idempotence test: fail' && exit 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Download test shim. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  - wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  - chmod +x ${PWD}/tests/test.sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Check if nginx is running. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # TODO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # Run tests. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  - ${PWD}/tests/test.sh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 notifications: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   webhooks: https://galaxy.ansible.com/api/v1/notifications/ 
			 |