diff --git a/.travis.yml b/.travis.yml index 91bc5e8..1208dca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,55 +1,32 @@ --- -language: 'python' -python: '2.7' +language: c +sudo: required -env: - - SITE_AND_INVENTORY='tests/test.yml -i tests/inventory' +services: + - docker + +cache: + directories: + - $HOME/docker before_install: - '__rvm_unload ; rm -rf ~/.rvm' - -install: - - 'pip install ansible==2.2.0' - - 'printf "[defaults]\nroles_path = ../" > ansible.cfg' + - if [[ -d $HOME/docker ]]; then ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; fi + - sudo rm /usr/local/bin/docker-compose + - curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > docker-compose + - chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin + - sudo pip install ansible==2.2.0 script: + - cd tests + - docker-compose up -d + - ansible-playbook user.yml + +before_cache: - > - ruby -v - | grep -q 'ruby' - && (echo 'No ruby test: pass' && exit 1) - || (echo 'No ruby test: fail' && exit 0) - - 'ansible-playbook $SITE_AND_INVENTORY --syntax-check' - - 'ansible-playbook $SITE_AND_INVENTORY --connection=local -vvvv' - - > - ansible-playbook $SITE_AND_INVENTORY --connection=local - | grep -q 'changed=0.*failed=0' - && (echo 'Idempotence test: pass' && exit 0) - || (echo 'Idempotence test: fail' && exit 1) - - > - ~/.rvm/wrappers/default/ruby -v - | grep -q '2.3.1' - && (echo 'Default ruby test: pass' && exit 0) - || (echo 'Default ruby test: fail' && exit 1) - - > - ls ~/.rvm/rubies - | grep -q 'ruby-2.2.5' - && (echo 'Multiple rubies test: pass' && exit 0) - || (echo 'Multiple rubies test: fail' && exit 1) - - > - ansible-playbook $SITE_AND_INVENTORY --connection=local --extra-vars='rvm1_delete_ruby=ruby-2.2.5' - | grep -q 'ok=1.*failed=0' - && (echo 'Delete ruby test: pass' && exit 0) - || (echo 'Delete ruby test: fail' && exit 1) - - > - ls ~/.rvm/rubies/ | wc -l - | grep -q '2' - && (echo 'Really deleted ruby test: pass' && exit 0) - || (echo 'Really deleted ruby test: fail' && exit 1) - - > - ls ~/.rvm/wrappers/default/ - | grep -q 'bundler' - && (echo 'Bundler symlinked on system path test: pass' && exit 0) - || (echo 'Bundler symlinked on system path test: fail' && exit 1) + mkdir -p $HOME/docker && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}' + | xargs -n 2 -t sh -c 'test -e $HOME/docker/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker/$1.tar.gz' notifications: webhooks: https://galaxy.ansible.com/api/v1/notifications/ diff --git a/tests/assertions.yml b/tests/assertions.yml new file mode 100644 index 0000000..f1944ce --- /dev/null +++ b/tests/assertions.yml @@ -0,0 +1,34 @@ +--- +- name: Check that ruby exists + command: ruby -v + register: check_ruby +- assert: + that: + - "{{ check_ruby.stdout }} == 'ruby'" + - "{{ check_ruby.rc }} == 0 " + msg: No ruby test pass + +- name: Check default ruby + shell: ~/.rvm/wrappers/default/ruby -v | cut -c1-10 + register: check_ruby_default +- assert: + that: + - "{{ check_ruby_default.stdout }} == 'ruby 2.3.1'" + msg: Default ruby test pass + +- name: Check multiple rubies + command: ls ~/.rvm/rubies + register: check_ruby_multiple +- assert: + that: + - "ruby-2.2.5' in {{ check_ruby_multiple.stdout }}" + - "ruby-2.3.1' in {{ check_ruby_multiple.stdout }}" + msg: Multiple rubies test pass + +- name: Check bundler symlinked on system path + shell: ls ~/.rvm/wrappers/default/ |grep 'bundler' + register: check_ruby_bundler +- assert: + that: + - "{{ check_ruby_bundler.stdout }} == 'bundler'" + msg: Bundler symlinked on system path test pass diff --git a/tests/post_tasks.yml b/tests/post_tasks.yml deleted file mode 100644 index 750f8a1..0000000 --- a/tests/post_tasks.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -post_tasks: - - name: Check that ruby exists - command: ruby -v - register: check_ruby - - assert: - that: - - "check_ruby == 'ruby'" - - "check_ruby.rc == 0 " - msg: No ruby test pass - - - name: Check default ruby - shell: ~/.rvm/wrappers/default/ruby -v | cut -c1-10 - register: check_ruby_default - - assert: - that: - - "check_ruby_default.stdout == 'ruby 2.3.1'" - msg: Default ruby test pass - - - name: Check multiple rubies - command: ls ~/.rvm/rubies - register: check_ruby_multiple - - assert: - that: - - "ruby-2.2.5' in check_ruby_multiple.stdout" - - "ruby-2.3.1' in check_ruby_multiple.stdout" - msg: Multiple rubies test pass - - - name: Check bundler symlinked on system path - shell: ls ~/.rvm/wrappers/default/ |grep 'bundler' - register: check_ruby_bundler - - assert: - that: - - "check_ruby_bundler.stdout == 'bundler' " - msg: Bundler symlinked on system path test pass diff --git a/tests/root.yml b/tests/root.yml index 32dc5b3..000587d 100644 --- a/tests/root.yml +++ b/tests/root.yml @@ -16,4 +16,4 @@ gather_facts: false tasks: - name: Assert tasks - include: assertetions.yml + include: assertions.yml