|
@@ -0,0 +1,33 @@
|
|
|
+---
|
|
|
+language: python
|
|
|
+python: "2.7"
|
|
|
+
|
|
|
+env:
|
|
|
+ - SITE=test.yml
|
|
|
+
|
|
|
+before_install:
|
|
|
+ - sudo apt-get update -qq
|
|
|
+
|
|
|
+install:
|
|
|
+ # Install Ansible.
|
|
|
+ - pip install ansible==1.5.0
|
|
|
+
|
|
|
+ # Add ansible.cfg to pick up roles path.
|
|
|
+ - "printf '[defaults]\nroles_path = ../' > ansible.cfg"
|
|
|
+
|
|
|
+ # Install required dependencies.
|
|
|
+ - ansible-galaxy install geerlingguy.git
|
|
|
+
|
|
|
+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)
|