ソースを参照

Added travis config

Till Klocke 9 年 前
コミット
9e232bd885
1 ファイル変更128 行追加0 行削除
  1. 128 0
      .travis.yml

+ 128 - 0
.travis.yml

@@ -0,0 +1,128 @@
+---
+language: python
+python: "2.7"
+
+before_install:
+  # Make sure everything's up to date.
+  - sudo apt-get update -qq
+  - sudo apt-get install -qq python-apt python-pycurl git python-pip
+
+install:
+  - sudo pip install ansible
+  - sudo mkdir -p /spec
+  - >
+    [ ! -d /spec/ansible-spec ]
+    && sudo git clone https://github.com/ahelal/ansible-spec /spec/ansible-spec && echo "ansible-spec Installing"
+    || echo "ansible-spec allready installed"
+
+script:
+    - cd test
+    - ansible --version
+    ## Group
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/group.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/group.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/group.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th: run test make sure module spit it right data
+    - ansible-playbook -i local.ini application/group_spec.yml --sudo -vvvv -C
+
+    ## Simple
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/simple.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/simple.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/simple.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th: run test make sure module spit it right data
+    - ansible-playbook -i local.ini application/simple_spec.yml --sudo -vvvv -C
+
+    ## Advanced
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/advanced.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/advanced.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/advanced.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th: run test make sure module spit it right data
+    - ansible-playbook -i local.ini application/advanced_spec.yml --sudo -vvvv -C --diff
+
+    ## Source file yaml and json
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/source_files.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/source_files.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/source_files.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th: run test make sure module spit it right data
+    - ansible-playbook -i local.ini application/source_files_specs.yml --sudo -vvvv -C --diff
+
+    ## Source databag
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/source_databag.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/source_databag.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/source_databag.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th: run test make sure module spit it right data
+    - ansible-playbook -i local.ini application/source_databag_spec.yml --sudo -vvvv -C --diff
+
+    ## Mutli Source
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/multi_source_files.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/multi_source_files.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/multi_source_files.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th:
+    - ansible-playbook -i local.ini application/multi_source_specs.yml --sudo -vvvv -C --diff
+
+    ## Team management
+    # 1st: check syntax
+    - ansible-playbook -i local.ini application/team.yml --syntax-check
+    # 2nd:  Make sure we run the entire playbook
+    - ansible-playbook -i local.ini application/team.yml --sudo -vvvv
+    # 3rd:  Make sure our playbook is idempotent
+    - >
+      ansible-playbook -i local.ini application/team.yml --sudo -vvvv | tee ansible_output
+      | grep -q 'changed=0.*failed=0'
+      && (echo 'Idempotence test: pass' && exit 0)
+      || (echo 'Idempotence test: fail' && exit 1)
+    # 4th:
+    - ansible-playbook -i local.ini application/team_spec.yml --sudo -vvvv -C --diff
+
+after_failure:
+    - echo "Failure"
+    - sudo cat ansible_output
+    - sudo netstat -atnlp
+    - sudo cat /home/nexus/sonatype-work/nexus/logs/nexus.log
+    - sudo cat /home/nexus/sonatype-work/nexus/logs/request.log
+    - ansible -i 127.0.0.1, -m setup all -c local
+
+after_success:
+    - echo "Success"