فهرست منبع

Switch to more efficient and compact test setup.

Jeff Geerling 8 سال پیش
والد
کامیت
8616f4cf2f
3فایلهای تغییر یافته به همراه18 افزوده شده و 32 حذف شده
  1. 2 0
      .gitignore
  2. 5 32
      .travis.yml
  3. 11 0
      tests/README.md

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+*.retry
+tests/test.sh

+ 5 - 32
.travis.yml

@@ -3,44 +3,17 @@ services: docker
 
 
 env:
 env:
   - distro: centos7
   - distro: centos7
-    init: /usr/lib/systemd/systemd
-    run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
   - distro: ubuntu1604
   - distro: ubuntu1604
-    init: /lib/systemd/systemd
-    run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
   - distro: ubuntu1404
   - distro: ubuntu1404
-    init: /sbin/init
-    run_opts: ""
   - distro: ubuntu1204
   - distro: ubuntu1204
-    init: /sbin/init
-    run_opts: ""
-
-before_install:
-  # Pull container.
-  - 'docker pull geerlingguy/docker-${distro}-ansible:latest'
 
 
 script:
 script:
-  - container_id=$(mktemp)
-  # Run container in detached state.
-  - 'docker run --detach --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"'
-
-  # Ansible syntax check.
-  - 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check'
-
-  # Test role.
-  - 'docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml'
-
-  # Test role idempotence.
-  - idempotence=$(mktemp)
-  - docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml | tee -a ${idempotence}
-  - >
-    tail ${idempotence}
-    | grep -q 'changed=0.*failed=0'
-    && (echo 'Idempotence test: pass' && exit 0)
-    || (echo 'Idempotence test: fail' && exit 1)
+  # Download test shim.
+  - wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/
+  - chmod +x ${PWD}/tests/test.sh
 
 
-  # Check if nginx is running.
-  # TODO
+  # Run tests.
+  - ${PWD}/tests/test.sh
 
 
 notifications:
 notifications:
   webhooks: https://galaxy.ansible.com/api/v1/notifications/
   webhooks: https://galaxy.ansible.com/api/v1/notifications/

+ 11 - 0
tests/README.md

@@ -0,0 +1,11 @@
+# Ansible Role tests
+
+To run the test playbook(s) in this directory:
+
+  1. Install and start Docker.
+  1. Download the test shim (see .travis.yml file for the URL) into `tests/test.sh`:
+    - `wget -O tests/test.sh wget -O ${PWD}/tests/test.sh https://gist.githubusercontent.com/geerlingguy/73ef1e5ee45d8694570f334be385e181/raw/`
+  1. Make the test shim executable: `chmod +x tests/test.sh`.
+  1. Run (from the role root directory) `distro=[distro] playbook=[playbook] ./tests/test.sh`
+
+If you don't want the container to be automatically deleted after the test playbook is run, add the following environment variables: `cleanup=false container_id=$(date +%s)`