From 64de2a4bcbb0b8273ba66ab5c82c7b9db5c10740 Mon Sep 17 00:00:00 2001 From: Jeff Geerling Date: Tue, 13 Sep 2016 22:41:16 -0500 Subject: More efficient Docker test layout. --- .travis.yml | 30 ++++++++++++++---------------- README.md | 2 +- tests/Dockerfile.centos-6 | 15 --------------- tests/Dockerfile.centos-7 | 27 --------------------------- tests/Dockerfile.ubuntu-12.04 | 11 ----------- tests/Dockerfile.ubuntu-14.04 | 11 ----------- 6 files changed, 15 insertions(+), 81 deletions(-) delete mode 100644 tests/Dockerfile.centos-6 delete mode 100644 tests/Dockerfile.centos-7 delete mode 100644 tests/Dockerfile.ubuntu-12.04 delete mode 100644 tests/Dockerfile.ubuntu-14.04 diff --git a/.travis.yml b/.travis.yml index 668ba3b..33dc0c7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,20 +2,19 @@ sudo: required env: - - distribution: centos - version: 6 + - distro: centos7 + init: /usr/lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + - distro: centos6 init: /sbin/init run_opts: "" - - distribution: centos - version: 7 - init: /usr/lib/systemd/systemd + - distro: ubuntu1604 + init: /lib/systemd/systemd run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" - - distribution: ubuntu - version: 14.04 + - distro: ubuntu1404 init: /sbin/init run_opts: "" - - distribution: ubuntu - version: 12.04 + - distro: ubuntu1204 init: /sbin/init run_opts: "" @@ -23,15 +22,13 @@ services: - docker before_install: - # Pull container - - 'sudo docker pull ${distribution}:${version}' - # Customize container - - 'sudo docker build --rm=true --file=tests/Dockerfile.${distribution}-${version} --tag=${distribution}-${version}:ansible tests' + # Pull container. + - 'sudo docker pull geerlingguy/docker-${distro}-ansible:latest' script: - container_id=$(mktemp) - # Run container in detached state - - 'sudo docker run --detach -p 8025:8025 --volume="${PWD}":/etc/ansible/roles/role_under_test:ro ${run_opts} ${distribution}-${version}:ansible "${init}" > "${container_id}"' + # Run container in detached state. + - 'sudo 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. - 'sudo docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /etc/ansible/roles/role_under_test/tests/test.yml --syntax-check' @@ -48,7 +45,8 @@ script: && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1) - # Clean up +after_success: + # Clean up. - 'sudo docker stop "$(cat ${container_id})"' notifications: diff --git a/README.md b/README.md index 88bcc08..9f406f3 100644 --- a/README.md +++ b/README.md @@ -52,4 +52,4 @@ MIT / BSD ## Author Information -This role was created in 2014 by [Jeff Geerling](http://jeffgeerling.com/), author of [Ansible for DevOps](http://ansiblefordevops.com/). +This role was created in 2014 by [Jeff Geerling](http://www.jeffgeerling.com/), author of [Ansible for DevOps](https://www.ansiblefordevops.com/). diff --git a/tests/Dockerfile.centos-6 b/tests/Dockerfile.centos-6 deleted file mode 100644 index 4a4e7b8..0000000 --- a/tests/Dockerfile.centos-6 +++ /dev/null @@ -1,15 +0,0 @@ -FROM centos:6 - -# Install Ansible -RUN yum -y update; yum clean all; -RUN yum -y install epel-release -RUN yum -y install git ansible sudo -RUN yum clean all - -# Disable requiretty -RUN sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers - -# Install Ansible inventory file -RUN echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts - -CMD ["/usr/sbin/init"] diff --git a/tests/Dockerfile.centos-7 b/tests/Dockerfile.centos-7 deleted file mode 100644 index 8aa0654..0000000 --- a/tests/Dockerfile.centos-7 +++ /dev/null @@ -1,27 +0,0 @@ -FROM centos:7 - -# Install systemd -- See https://hub.docker.com/_/centos/ -RUN yum -y swap -- remove fakesystemd -- install systemd systemd-libs -RUN yum -y update; yum clean all; \ -(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ -rm -f /lib/systemd/system/multi-user.target.wants/*; \ -rm -f /etc/systemd/system/*.wants/*; \ -rm -f /lib/systemd/system/local-fs.target.wants/*; \ -rm -f /lib/systemd/system/sockets.target.wants/*udev*; \ -rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \ -rm -f /lib/systemd/system/basic.target.wants/*; \ -rm -f /lib/systemd/system/anaconda.target.wants/*; - -# Install Ansible -RUN yum -y install epel-release -RUN yum -y install git ansible sudo -RUN yum clean all - -# Disable requiretty -RUN sed -i -e 's/^\(Defaults\s*requiretty\)/#--- \1/' /etc/sudoers - -# Install Ansible inventory file -RUN echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts - -VOLUME ["/sys/fs/cgroup"] -CMD ["/usr/sbin/init"] diff --git a/tests/Dockerfile.ubuntu-12.04 b/tests/Dockerfile.ubuntu-12.04 deleted file mode 100644 index d0c130c..0000000 --- a/tests/Dockerfile.ubuntu-12.04 +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:12.04 -RUN apt-get update - -# Install Ansible -RUN apt-get install -y software-properties-common python-software-properties git -RUN apt-add-repository -y ppa:ansible/ansible -RUN apt-get update -RUN apt-get install -y ansible - -# Install Ansible inventory file -RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts diff --git a/tests/Dockerfile.ubuntu-14.04 b/tests/Dockerfile.ubuntu-14.04 deleted file mode 100644 index ca33287..0000000 --- a/tests/Dockerfile.ubuntu-14.04 +++ /dev/null @@ -1,11 +0,0 @@ -FROM ubuntu:14.04 -RUN apt-get update - -# Install Ansible -RUN apt-get install -y software-properties-common git -RUN apt-add-repository -y ppa:ansible/ansible -RUN apt-get update -RUN apt-get install -y ansible - -# Install Ansible inventory file -RUN echo "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts -- cgit v1.2.1