61 lines
2.1 KiB
YAML
Executable File
61 lines
2.1 KiB
YAML
Executable File
---
|
|
sudo: required
|
|
language: python
|
|
services:
|
|
- docker
|
|
env:
|
|
global:
|
|
- role: weareinteractive.apt
|
|
matrix:
|
|
- distribution: Ubuntu
|
|
distribution_version: "18.04"
|
|
init: /lib/systemd/systemd
|
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
- distribution: Ubuntu
|
|
distribution_version: "16.04"
|
|
init: /lib/systemd/systemd
|
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
- distribution: Ubuntu
|
|
distribution_version: "14.04"
|
|
init: /sbin/init
|
|
run_opts: ""
|
|
- distribution: Debian
|
|
distribution_version: "9"
|
|
init: /lib/systemd/systemd
|
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
- distribution: Debian
|
|
distribution_version: "8"
|
|
init: /lib/systemd/systemd
|
|
run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro"
|
|
|
|
before_install:
|
|
- sudo apt-get update
|
|
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
|
- docker pull ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}"
|
|
|
|
script:
|
|
- container_id=$(mktemp)
|
|
# Start The Built Container In The Background
|
|
- docker run -d -v "${PWD}":/etc/ansible/roles/${role}:ro ${run_opts} ansiblecheck/ansiblecheck:"${distribution,,}"-"${distribution_version}" "${init}" > "${container_id}"
|
|
|
|
# Print ansible version
|
|
- docker exec -t "$(cat ${container_id})" env TERM=xterm ansible --version
|
|
|
|
# Ansible syntax check.
|
|
- 'docker exec -t "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/${role}/tests/main.yml --syntax-check'
|
|
|
|
# Test role.
|
|
- 'docker exec "$(cat ${container_id})" env ANSIBLE_FORCE_COLOR=1 ansible-playbook /etc/ansible/roles/${role}/tests/main.yml'
|
|
|
|
# Test Idempotence
|
|
- idempotence=$(mktemp)
|
|
- docker exec "$(cat ${container_id})" ansible-playbook /etc/ansible/roles/${role}/tests/main.yml | tee -a ${idempotence}
|
|
- >
|
|
tail ${idempotence}
|
|
| grep -q 'failed=0'
|
|
&& (echo 'Idempotence test: pass' && exit 0)
|
|
|| (echo 'Idempotence test: fail' && exit 1)
|
|
|
|
notifications:
|
|
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|