Try to get tests running.

This commit is contained in:
Felix Fontein 2025-07-12 21:30:07 +02:00
parent 76b5c2c742
commit 260e9cc254
2 changed files with 62 additions and 10 deletions

View File

@ -13,6 +13,7 @@
set_fact:
name_prefix: "{{ 'ansible-docker-test-%0x' % ((2**32) | random) }}"
cnames: []
inames: []
dnetworks: []
- debug:
@ -41,6 +42,12 @@
with_items: "{{ cnames }}"
diff: false
- name: "Make sure all images are removed"
docker_image_remove:
name: "{{ item }}"
with_items: "{{ inames }}"
diff: false
- name: "Make sure all networks are removed"
docker_network:
name: "{{ item }}"

View File

@ -8,31 +8,32 @@
cname: "{{ name_prefix }}-cont"
non_existing_image: does-not-exist:latest
dockerfile_path: test-dockerfile
base_image: hello-world:latest
base_image: "{{ docker_test_image_hello_world }}"
image_name: "{{ name_prefix }}-image"
project_src: "{{ remote_tmp_dir }}/{{ bname }}"
test_service_non_existing: |
version: '3'
services:
{{ cname }}:
image: {{ non_existing_image }}
build:
dockerfile: Dockerfile-does-not-exist
test_service_simple: |
version: '3'
services:
{{ cname }}:
image: {{ docker_test_image_simple_1 }}
image: {{ image_name }}
build:
dockerfile: {{ dockerfile_path }}
command: 10m
stop_grace_period: 1s
test_service_simple_dockerfile: |
FROM {{ base_image }}
RUN [ "/hello" ]
block:
- name: Registering container name
set_fact:
cnames: "{{ cnames + [bname ~ '-' ~ cname ~ '-1'] + [ base_image ]}}"
cnames: "{{ cnames + [bname ~ '-' ~ cname ~ '-1'] }}"
inames: "{{ inames + [ base_image, image_name ] }}"
dnetworks: "{{ dnetworks + [bname ~ '_default'] }}"
- name: Create project directory
@ -44,9 +45,13 @@
docker_image_remove:
name: '{{ item }}'
loop:
- '{{ base_image }}'
- '{{ non_existing_image }}'
- '{{ docker_test_image_simple_1 }}'
- '{{ image_name }}'
- name: Prune docker build cache
docker_prune:
builder_cache: true
builder_cache_all: true
####################################################################
## Image with missing dockerfile ###################################
@ -72,11 +77,13 @@
- assert:
that:
- build_1_check is failed or build_1_check is changed
- build_1_check is changed or build_1_check.msg.startswith('Error when processing ')
- build_1_check is failed
- >-
build_1_check.msg | trim == "General error: failed to solve: failed to read dockerfile: open Dockerfile-does-not-exist: no such file or directory"
- build_1_check.warnings | default([]) | select('regex', 'Cannot parse event from ') | length == 0
- build_1 is failed
- build_1.msg.startswith('Error when processing ')
- >-
build_1.msg | trim == "General error: failed to solve: failed to read dockerfile: open Dockerfile-does-not-exist: no such file or directory"
- build_1.warnings | default([]) | select('regex', 'Cannot parse event from ') | length == 0
####################################################################
@ -93,17 +100,48 @@
dest: '{{ project_src }}/{{ dockerfile_path }}'
content: '{{ test_service_simple_dockerfile }}'
- docker_image_info:
name: "{{ image_name }}"
register: pre_image
- name: Build (check)
docker_compose_v2_build:
project_src: '{{ project_src }}'
check_mode: true
register: build_1_check
- docker_image_info:
name: "{{ image_name }}"
register: build_1_check_image
- name: Build
docker_compose_v2_build:
project_src: '{{ project_src }}'
register: build_1
- docker_image_info:
name: "{{ image_name }}"
register: build_1_image
- name: Build (idempotent, check)
docker_compose_v2_build:
project_src: '{{ project_src }}'
check_mode: true
register: build_2_check
- docker_image_info:
name: "{{ image_name }}"
register: build_2_check_image
- name: Build (idempotent)
docker_compose_v2_build:
project_src: '{{ project_src }}'
register: build_2
- docker_image_info:
name: "{{ image_name }}"
register: build_2_image
- assert:
that:
- build_1_check is changed
@ -112,3 +150,10 @@
- build_1 is changed
- (build_1.actions | selectattr('status', 'eq', 'Building') | first) is truthy
- build_1.warnings | default([]) | select('regex', 'Cannot parse event from ') | length == 0
- build_2_check is not changed
- build_2_check.actions | selectattr('status', 'eq', 'Building') | length == 0
- build_2_check.warnings | default([]) | select('regex', 'Cannot parse event from ') | length == 0
- build_2 is not changed
- build_2.actions | selectattr('status', 'eq', 'Building') | length == 0
- build_2.warnings | default([]) | select('regex', 'Cannot parse event from ') | length == 0