mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-03-15 19:58:28 +00:00
72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
---
|
|
# Copyright (c) Ansible Project
|
|
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
- name: Create random name prefix
|
|
ansible.builtin.set_fact:
|
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
|
- name: Create image and container list
|
|
ansible.builtin.set_fact:
|
|
inames: []
|
|
cnames: []
|
|
|
|
- ansible.builtin.debug:
|
|
msg: "Using name prefix {{ name_prefix }}"
|
|
|
|
- name: Create files directory
|
|
ansible.builtin.file:
|
|
path: '{{ remote_tmp_dir }}/files'
|
|
state: directory
|
|
|
|
- name: Template files
|
|
ansible.builtin.template:
|
|
src: '{{ item }}'
|
|
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
|
loop:
|
|
- ArgsDockerfile
|
|
- Dockerfile
|
|
- EtcHostsDockerfile
|
|
- MyDockerfile
|
|
- SecretsDockerfile
|
|
- StagedDockerfile
|
|
|
|
- ansible.builtin.debug:
|
|
msg: "Has buildx plugin: {{ docker_has_buildx }}"
|
|
|
|
- block:
|
|
- name: Determine plugin versions
|
|
ansible.builtin.command: docker info -f '{{ "{{" }}json .ClientInfo.Plugins{{ "}}" }}'
|
|
register: plugin_versions
|
|
|
|
- name: Determine buildx plugin version
|
|
ansible.builtin.set_fact:
|
|
buildx_version: >-
|
|
{{
|
|
(plugin_versions.stdout | from_json | selectattr('Name', 'eq', 'buildx') | map(attribute='Version') | first).lstrip('v')
|
|
}}
|
|
|
|
- ansible.builtin.include_tasks: run-test.yml
|
|
with_fileglob:
|
|
- "tests/*.yml"
|
|
loop_control:
|
|
loop_var: test_name
|
|
|
|
always:
|
|
- name: "Make sure all images are removed"
|
|
community.docker.docker_image:
|
|
name: "{{ item }}"
|
|
state: absent
|
|
with_items: "{{ inames }}"
|
|
- name: "Make sure all containers are removed"
|
|
community.docker.docker_container:
|
|
name: "{{ item }}"
|
|
state: absent
|
|
force_kill: true
|
|
with_items: "{{ cnames }}"
|
|
|
|
when: docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=') and docker_has_buildx
|
|
|
|
- ansible.builtin.fail: msg="Too old docker / docker-py version to run docker_image tests!"
|
|
when: not(docker_api_version is version('1.25', '>=') and docker_cli_version is version('19.03', '>=')) and (ansible_facts.distribution != 'CentOS' or ansible_facts.distribution_major_version|int > 6) and docker_has_buildx
|