diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..00eac3abb --- /dev/null +++ b/.travis.yml @@ -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 index 000000000..2fbb50c4a --- /dev/null +++ b/tests/inventory @@ -0,0 +1 @@ +localhost diff --git a/tests/test.yml b/tests/test.yml new file mode 100644 index 000000000..7b94da40e --- /dev/null +++ b/tests/test.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost + remote_user: root + roles: + - ceph-common + - ceph-mon + - ceph-osd + - ceph-mds + - ceph-radosgw + - haproxy