diff --git a/tests/integration/targets/connection_docker/aliases b/tests/integration/targets/connection_docker/aliases index 33b258da..02b78723 100644 --- a/tests/integration/targets/connection_docker/aliases +++ b/tests/integration/targets/connection_docker/aliases @@ -1,2 +1,2 @@ -non_local -unsupported +shippable/posix/group4 +destructive diff --git a/tests/integration/targets/connection_docker/meta/main.yml b/tests/integration/targets/connection_docker/meta/main.yml new file mode 100644 index 00000000..07da8c6d --- /dev/null +++ b/tests/integration/targets/connection_docker/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - setup_docker diff --git a/tests/integration/targets/connection_docker/runme-connection.sh b/tests/integration/targets/connection_docker/runme-connection.sh new file mode 120000 index 00000000..70aa5dbd --- /dev/null +++ b/tests/integration/targets/connection_docker/runme-connection.sh @@ -0,0 +1 @@ +../connection_posix/test.sh \ No newline at end of file diff --git a/tests/integration/targets/connection_docker/runme.sh b/tests/integration/targets/connection_docker/runme.sh deleted file mode 120000 index 70aa5dbd..00000000 --- a/tests/integration/targets/connection_docker/runme.sh +++ /dev/null @@ -1 +0,0 @@ -../connection_posix/test.sh \ No newline at end of file diff --git a/tests/integration/targets/connection_docker/runme.sh b/tests/integration/targets/connection_docker/runme.sh new file mode 100755 index 00000000..d39df505 --- /dev/null +++ b/tests/integration/targets/connection_docker/runme.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +# If you use another image, you possibly also need to adjust +# ansible_python_interpreter in test_connection.inventory. +IMAGE=python:3-alpine + +# Setup phase + +echo "Setup" +ANSIBLE_ROLES_PATH=.. ansible-playbook setup.yml + +# If docker wasn't installed, don't run the tests +if [ "$(command -v docker)" == "" ]; then + exit +fi + + +# Test phase + + +DOCKER_CONTAINERS="docker-connection-test-container" + +[[ -n "$DEBUG" || -n "$ANSIBLE_DEBUG" ]] && set -x + +set -euo pipefail + +cleanup() { + echo "Cleanup" + docker rm -f ${DOCKER_CONTAINERS} + echo "Shutdown" + ANSIBLE_ROLES_PATH=.. ansible-playbook shutdown.yml + echo "Done" + exit 0 +} + +trap cleanup INT TERM EXIT + +echo "Start containers" +for CONTAINER in ${DOCKER_CONTAINERS}; do + docker run --rm --name ${CONTAINER} --detach ${IMAGE} /bin/sh -c 'sleep 10m' + docker exec ${CONTAINER} pip3 install coverage + echo ${CONTAINER} +done + +echo "Run tests" +./runme-connection.sh diff --git a/tests/integration/targets/connection_docker/setup.yml b/tests/integration/targets/connection_docker/setup.yml new file mode 100644 index 00000000..a709d2c7 --- /dev/null +++ b/tests/integration/targets/connection_docker/setup.yml @@ -0,0 +1,10 @@ +--- +- hosts: localhost + connection: local + vars: + docker_skip_cleanup: yes + + tasks: + - name: Setup docker + import_role: + name: setup_docker diff --git a/tests/integration/targets/connection_docker/shutdown.yml b/tests/integration/targets/connection_docker/shutdown.yml new file mode 100644 index 00000000..e01d1210 --- /dev/null +++ b/tests/integration/targets/connection_docker/shutdown.yml @@ -0,0 +1,15 @@ +--- +- hosts: localhost + connection: local + vars: + docker_skip_cleanup: yes + + tasks: + - name: Remove docker packages + action: "{{ ansible_facts.pkg_mgr }}" + args: + name: + - docker + - docker-ce + - docker-ce-cli + state: absent diff --git a/tests/integration/targets/connection_docker/test_connection.inventory b/tests/integration/targets/connection_docker/test_connection.inventory index 7d464642..198e2d19 100644 --- a/tests/integration/targets/connection_docker/test_connection.inventory +++ b/tests/integration/targets/connection_docker/test_connection.inventory @@ -1,6 +1,8 @@ [docker] -docker-pipelining ansible_ssh_pipelining=true -docker-no-pipelining ansible_ssh_pipelining=false +docker-no-pipelining ansible_pipelining=false +docker-pipelining ansible_pipelining=true + [docker:vars] -ansible_host=ubuntu-latest +ansible_host=docker-connection-test-container ansible_connection=community.docker.docker +ansible_python_interpreter=/usr/local/bin/python3