|
| 1 | +--- |
| 2 | +sudo: required |
| 3 | + |
| 4 | +env: |
| 5 | + - distro: ubuntu1604 |
| 6 | + init: /lib/systemd/systemd |
| 7 | + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" |
| 8 | + - distro: ubuntu1404 |
| 9 | + init: /sbin/init |
| 10 | + run_opts: "" |
| 11 | + - distro: centos7 |
| 12 | + init: /usr/lib/systemd/systemd |
| 13 | + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" |
| 14 | + - distro: centos6 |
| 15 | + init: /sbin/init |
| 16 | + run_opts: "" |
| 17 | + |
| 18 | +services: |
| 19 | + - docker |
| 20 | + |
| 21 | +before_install: |
| 22 | + # Pull container. |
| 23 | + - 'sudo docker pull geerlingguy/docker-${distro}-ansible:latest' |
| 24 | + |
| 25 | +script: |
| 26 | + - container_id=$(mktemp) |
| 27 | + # Run container in detached state. |
| 28 | + - 'sudo docker run --detach --volume="${PWD}":/etc/ansible/roles/seafile:ro ${run_opts} geerlingguy/docker-${distro}-ansible:latest "${init}" > "${container_id}"' |
| 29 | + |
| 30 | + # Ansible show version |
| 31 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible --version' |
| 32 | + |
| 33 | + # Ansible syntax check. |
| 34 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/seafile/tests/test.yml --syntax-check' |
| 35 | + |
| 36 | + # Test role. |
| 37 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/seafile/tests/test.yml' |
| 38 | + |
| 39 | + # Test role idempotence. |
| 40 | + - idempotence=$(mktemp) |
| 41 | + - sudo docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/seafile/tests/test.yml | tee -a ${idempotence} |
| 42 | + - > |
| 43 | + tail ${idempotence} |
| 44 | + | grep -q 'changed=0.*failed=0' |
| 45 | + && (echo 'Idempotence test: pass' && exit 0) |
| 46 | + || (echo 'Idempotence test: fail' && exit 1) |
| 47 | +
|
| 48 | + # Ensure Seafile is installed. |
| 49 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f manage.py' |
| 50 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f seafile-controller' |
| 51 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f ccnet-server' |
| 52 | + - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm pgrep -f seaf-server' |
| 53 | + |
| 54 | +after_success: |
| 55 | + # Clean up. |
| 56 | + - 'sudo docker stop "$(cat ${container_id})"' |
| 57 | + |
| 58 | +notifications: |
| 59 | + email: false |
| 60 | + webhooks: https://galaxy.ansible.com/api/v1/notifications/ |
| 61 | + |
0 commit comments