mirror of
https://github.com/ansible-collections/community.docker.git
synced 2025-12-17 12:28:55 +00:00
* Add note on idempotency. * Make platform a list of strings. * Support specifying secrets. * Add test for secrets. * Support specifying outputs. * Ignore invalid choices syntax for ansible-core <= 2.16. It actually works with ansible-core 2.14+ (though not with <= 2.13), but the sanity tests only accept it from 2.17 on. * Only use --secret with type=env for buildx 0.6.0+, and multiple --output for buildx 0.13.0+.
72 lines
2.1 KiB
YAML
72 lines
2.1 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
|
|
set_fact:
|
|
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
|
|
- name: Create image and container list
|
|
set_fact:
|
|
inames: []
|
|
cnames: []
|
|
|
|
- debug:
|
|
msg: "Using name prefix {{ name_prefix }}"
|
|
|
|
- name: Create files directory
|
|
file:
|
|
path: '{{ remote_tmp_dir }}/files'
|
|
state: directory
|
|
|
|
- name: Template files
|
|
template:
|
|
src: '{{ item }}'
|
|
dest: '{{ remote_tmp_dir }}/files/{{ item }}'
|
|
loop:
|
|
- ArgsDockerfile
|
|
- Dockerfile
|
|
- EtcHostsDockerfile
|
|
- MyDockerfile
|
|
- SecretsDockerfile
|
|
- StagedDockerfile
|
|
|
|
- debug:
|
|
msg: "Has buildx plugin: {{ docker_has_buildx }}"
|
|
|
|
- block:
|
|
- name: Determine plugin versions
|
|
command: docker info -f '{{ "{{" }}json .ClientInfo.Plugins{{ "}}" }}'
|
|
register: plugin_versions
|
|
|
|
- name: Determine buildx plugin version
|
|
set_fact:
|
|
buildx_version: >-
|
|
{{
|
|
(plugin_versions.stdout | from_json | selectattr('Name', 'eq', 'buildx') | map(attribute='Version') | first).lstrip('v')
|
|
}}
|
|
|
|
- include_tasks: run-test.yml
|
|
with_fileglob:
|
|
- "tests/*.yml"
|
|
loop_control:
|
|
loop_var: test_name
|
|
|
|
always:
|
|
- name: "Make sure all images are removed"
|
|
docker_image:
|
|
name: "{{ item }}"
|
|
state: absent
|
|
with_items: "{{ inames }}"
|
|
- name: "Make sure all containers are removed"
|
|
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
|
|
|
|
- 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_distribution != 'CentOS' or ansible_distribution_major_version|int > 6) and docker_has_buildx
|