]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Add test to the playbooks 191/head
authorSébastien Han <sebastien.han@enovance.com>
Wed, 21 Jan 2015 08:59:42 +0000 (09:59 +0100)
committerSébastien Han <sebastien.han@enovance.com>
Wed, 21 Jan 2015 08:59:42 +0000 (09:59 +0100)
Through Travis.

Signed-off-by: Sébastien Han <sebastien.han@enovance.com>
.travis.yml [new file with mode: 0644]
tests/inventory [new file with mode: 0644]
tests/test.yml [new file with mode: 0644]

diff --git a/.travis.yml b/.travis.yml
new file mode 100644 (file)
index 0000000..00eac3a
--- /dev/null
@@ -0,0 +1,35 @@
+---
+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"
diff --git a/tests/inventory b/tests/inventory
new file mode 100644 (file)
index 0000000..2fbb50c
--- /dev/null
@@ -0,0 +1 @@
+localhost
diff --git a/tests/test.yml b/tests/test.yml
new file mode 100644 (file)
index 0000000..7b94da4
--- /dev/null
@@ -0,0 +1,10 @@
+---
+- hosts: localhost
+  remote_user: root
+  roles:
+    - ceph-common
+    - ceph-mon
+    - ceph-osd
+    - ceph-mds
+    - ceph-radosgw
+    - haproxy