ansible-role-prosody-master/.travis.yml

72 lines
2.4 KiB
YAML

---
version: ~> 1.0
os: linux
language: shell
env:
- docker_repo: resin/rpi-raspbian
- docker_repo: geerlingguy/docker-debian10-ansible
- docker_repo: geerlingguy/docker-debian9-ansible
- docker_repo: geerlingguy/docker-centos7-ansible
- docker_repo: geerlingguy/docker-fedora30-ansible
- docker_repo: geerlingguy/docker-ubuntu1804-ansible
- docker_repo: geerlingguy/docker-ubuntu1604-ansible
jobs:
# TODO: Fix these failures?
allow_failures:
# TODO: Fixing the Raspbian build is going to require QEMU and
# binfmt_misc support. See:
# https://www.balena.io/blog/building-arm-containers-on-any-x86-machine-even-dockerhub/
# In the mean time, allow this to fail.
- env: docker_repo=resin/rpi-raspbian
- env: docker_repo=geerlingguy/docker-centos7-ansible
- env: docker_repo=geerlingguy/docker-fedora30-ansible
install:
- docker image pull ${docker_repo}
- container_id=$(mktemp)
- >
docker container run --detach --privileged
--volume /sys/fs/cgroup:/sys/fs/cgroup:ro
--volume ${PWD}:/etc/ansible/roles/ansible-role-prosody:ro
--publish 5222:5222
--publish 5269:5269
${docker_repo}:latest > ${container_id}
# Bootstrap to ensure Ansible is available in the container.
# This is to ensure that the containers not already pre-imaged with
# Ansible installed (i.e., Raspbian image) will have it available.
- >
docker container exec --tty $(cat ${container_id}) env TERM=xterm
pip install ansible
script:
# Check Ansible role/playbook syntax.
- >
docker container exec --tty "$(cat ${container_id})" env TERM=xterm
ansible-playbook --syntax-check /etc/ansible/roles/ansible-role-prosody/tests/test.yaml
# Ensure the role/playbook runs without errors or failures.
- >
docker exec --tty "$(cat ${container_id})" env TERM=xterm
ansible-playbook /etc/ansible/roles/ansible-role-prosody/tests/test.yaml
# Run the role/playbook again to test idempotence.
- idempotence=$(mktemp)
- >
docker exec "$(cat ${container_id})"
ansible-playbook /etc/ansible/roles/ansible-role-prosody/tests/test.yaml
| tee -a ${idempotence}
- >
tail ${idempotence}
| grep -q 'changed=0.*failed=0'
&& (echo 'Idempotence test: pass' && exit 0)
|| (echo 'Idempotence test: fail' && exit 1)
- nc -vz localhost 5222
- nc -vz localhost 5269
after_script:
- docker container rm -f "$(cat ${container_id})"