--- /dev/null
+---
+language: python
+python: "2.7"
+
+env:
+ - SITE=test.yml
+
+before_install:
+ - sudo apt-get update -qq
+ - sudo apt-get install -y curl
+
+install:
+ # Install Ansible.
+ - pip install ansible
+
+ # Add ansible.cfg to pick up roles path.
+ - "{ echo '[defaults]'; echo 'roles_path = ../'; } >> ansible.cfg"
+
+script:
+ # Check the role/playbook's syntax.
+ - "ansible-playbook -i tests/inventory tests/$SITE --syntax-check"
+
+ # Run the role/playbook with ansible-playbook.
+ - "ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo"
+
+ # Run the role/playbook again, checking to make sure it's idempotent.
+ - >
+ ansible-playbook -i tests/inventory tests/$SITE --connection=local --sudo
+ | grep -q 'changed=0.*failed=0'
+ && (echo 'Idempotence test: pass' && exit 0)
+ || (echo 'Idempotence test: fail' && exit 1)
+
+ # Make sure Ansible is installed (yes, this is contrived, since Ansible was
+ # already installed via pip earlier...).
+ - "which ansible"