|
1 | 1 | ---
|
2 |
| -language: python |
3 |
| -python: "2.7" |
4 |
| -# Use the new container infrastructure |
5 | 2 | sudo: required
|
6 |
| -# Install ansible |
7 |
| -addons: |
8 |
| - apt: |
9 |
| - packages: |
10 |
| - - python-pip |
11 |
| -install: |
12 |
| - # Install ansible |
13 |
| - - pip install ansible |
14 |
| - # Check ansible version |
15 |
| - - ansible --version |
16 |
| - # Create ansible.cfg with correct roles_path |
17 |
| - - printf '[defaults]\nroles_path=../' >ansible.cfg |
| 3 | +services: |
| 4 | + - docker |
| 5 | +env: |
| 6 | + - distribution: centos |
| 7 | + version: 6 |
| 8 | + playbook: opensource |
| 9 | + - distribution: centos |
| 10 | + version: 6 |
| 11 | + playbook: template |
| 12 | + - distribution: centos |
| 13 | + version: 6 |
| 14 | + playbook: push |
| 15 | + - distribution: centos |
| 16 | + version: 7 |
| 17 | + playbook: opensource |
| 18 | + - distribution: centos |
| 19 | + version: 7 |
| 20 | + playbook: template |
| 21 | + - distribution: centos |
| 22 | + version: 7 |
| 23 | + playbook: push |
| 24 | + - distribution: debian |
| 25 | + version: jessie |
| 26 | + playbook: opensource |
| 27 | + - distribution: debian |
| 28 | + version: jessie |
| 29 | + playbook: template |
| 30 | + - distribution: debian |
| 31 | + version: jessie |
| 32 | + playbook: push |
| 33 | + - distribution: debian |
| 34 | + version: stretch |
| 35 | + playbook: opensource |
| 36 | + - distribution: debian |
| 37 | + version: stretch |
| 38 | + playbook: template |
| 39 | + - distribution: debian |
| 40 | + version: stretch |
| 41 | + playbook: push |
| 42 | + - distribution: ubuntu |
| 43 | + version: trusty |
| 44 | + playbook: opensource |
| 45 | + - distribution: ubuntu |
| 46 | + version: trusty |
| 47 | + playbook: template |
| 48 | + - distribution: ubuntu |
| 49 | + version: trusty |
| 50 | + playbook: push |
| 51 | + - distribution: ubuntu |
| 52 | + version: xenial |
| 53 | + playbook: opensource |
| 54 | + - distribution: ubuntu |
| 55 | + version: xenial |
| 56 | + playbook: template |
| 57 | + - distribution: ubuntu |
| 58 | + version: xenial |
| 59 | + playbook: push |
| 60 | +before_install: |
| 61 | + - 'sudo docker pull ${distribution}:${version}' |
| 62 | + - 'sudo docker build --no-cache --rm --file=tests/dockerfiles/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests' |
18 | 63 | script:
|
19 |
| - # Basic role syntax check |
20 |
| - - ansible-playbook tests/test.yml -i tests/inventory --syntax-check |
21 |
| - # Run the role with ansible-playbook. |
22 |
| - - ansible-playbook tests/test.yml -i tests/inventory --connection=local --become |
23 |
| - # Run the role again, checking to make sure it's idempotent. |
| 64 | + - container_id=$(mktemp) |
| 65 | + - 'sudo docker run --detach --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro --volume="${PWD}":/etc/ansible/roles/ansible-role-nginx:ro ${distribution}-${version}:ansible > "${container_id}"' |
| 66 | + - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml --syntax-check' |
| 67 | + - 'sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml' |
24 | 68 | - >
|
25 |
| - ansible-playbook tests/test.yml -i tests/inventory --connection=local --become | grep -q 'changed=0.*failed=0' |
26 |
| - && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1) |
27 |
| - # Request a page via the web server, to make sure NGINX is running and responds. |
28 |
| - - curl http://localhost/ |
| 69 | + sudo docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook -v /etc/ansible/roles/ansible-role-nginx/tests/playbooks/nginx-${playbook}.yml |
| 70 | + | grep -q 'changed=0.*failed=0' |
| 71 | + && (echo 'Idempotence test: pass' && exit 0) |
| 72 | + || (echo 'Idempotence test: fail' && exit 1) |
| 73 | + - 'sudo docker exec "$(cat ${container_id})" curl http://localhost/' |
| 74 | + - 'sudo docker rm -f "$(cat ${container_id})"' |
29 | 75 | notifications:
|
30 | 76 | webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
0 commit comments