From ed459f49f95572d1a278ffa752131d6eef3f28f1 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Fri, 23 Sep 2016 16:51:59 -0500 Subject: [PATCH] Fixes #17 (for real): Add macOS Travis CI tests. --- .travis.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..e882738 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,46 @@ +--- +sudo: required +language: objective-c +# 10.11 (see https://docs.travis-ci.com/user/osx-ci-environment/#OS-X-Version) +osx_image: xcode7.3 + +before_install: + # Uninstall existing brew installation. + - 'ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"' + - rm -rf /usr/local/Homebrew + - rm -rf /usr/local/Caskroom + - rm -rf /usr/local/bin/brew + +install: + # Install pip. + - sudo easy_install pip + + # Install Ansible. + - sudo pip install ansible + + # Add ansible.cfg to pick up roles path. + - "{ echo '[defaults]'; echo 'roles_path = ../'; } >> ansible.cfg" + + # Add a hosts file. + - sudo mkdir -p /etc/ansible + - sudo touch /etc/ansible/hosts + - "echo -e '[local]\nlocalhost ansible_connection=local' | sudo tee -a /etc/ansible/hosts > /dev/null" + +script: + # Install dependencies. + - "ansible-galaxy install -r requirements.yml" + + # Check the role/playbook's syntax. + - "ansible-playbook main.yml --syntax-check" + + # Test the playbook. + - "ansible-playbook main.yml" + + # Test the playbook's idempotence. + - idempotence=$(mktemp) + - "ansible-playbook main.yml | tee -a ${idempotence}" + - > + tail ${idempotence} + | grep -q 'changed=0.*failed=0' + && (echo 'Idempotence test: pass' && exit 0) + || (echo 'Idempotence test: fail' && exit 1)