Refactor way tests info are passed from sed to file with lookup

The idea is to avoid modifying test targets from the workflow to prevent
ansible-test to think every tests needs to be run.
This commit is contained in:
Laurent Indermuehle 2023-01-05 19:04:51 +01:00
commit 98ce2af28c
No known key found for this signature in database
GPG key ID: 93FA944C9F34DD09
7 changed files with 35 additions and 22 deletions

View file

@ -15,9 +15,6 @@ on:
- cron: '0 6 * * *'
env:
config_file: "tests/integration/targets/setup_controller/defaults/main.yml"
jobs:
# sanity:
# name: "Sanity (Ansible: ${{ matrix.ansible }})"
@ -128,9 +125,9 @@ jobs:
ansible-core-version: ${{ matrix.ansible }}
pre-test-cmd: >-
>&2 echo Setting db_engine_version to ${{ matrix.db_engine_version }}...;
sed -i 's/^db_engine_version:.*/db_engine_version: [${{ matrix.db_engine_version }}]/' ${{ env.config_file }}
echo ${{ matrix.db_engine_version }} > tests/integration/db_engine_version
>&2 echo Setting Connector version to ${{ matrix.connector }}...;
sed -i 's/^python_packages:.*/python_packages: [${{ matrix.connector }}]/' ${{ env.config_file }}
echo ${{ matrix.connector }} > tests/integration/connector
target-python-version: ${{ matrix.python }}
testing-type: integration

View file

@ -1,5 +1,7 @@
.PHONY: test-integration
test-integration:
echo "mysql:8.0.22" > tests/integration/db_engine_version
echo "pymysql==0.9.3" > tests/integration/connector
podman run \
--detach \
--name primary \
@ -33,6 +35,8 @@ test-integration:
mysql:8.0.22
while ! podman healthcheck run primary && [[ "$$SECONDS" -lt 120 ]]; do sleep 1; done
-set -x; ansible-test integration -v --color --coverage --retry-on-error --continue-on-error --diff --docker --docker-network podman --python 3.8; set +x
rm tests/integration/db_engine_version
rm tests/integration/connector
podman stop --time 0 --ignore primary
podman stop --time 0 --ignore replica1
podman stop --time 0 --ignore replica2

View file

@ -1,4 +1,2 @@
---
home_dir: "{{ playbook_dir }}/root"
db_engine_version: mysql:8.0.22
python_packages: [pymysql == 0.9.3]

View file

@ -0,0 +1,5 @@
---
- name: "{{ role_name }} | Connector | Install python packages"
ansible.builtin.pip:
name: "{{ connector_name }}"

View file

@ -11,11 +11,6 @@
environment:
DEBIAN_FRONTEND: noninteractive
- name: "{{ role_name }} | install | install python packages"
ansible.builtin.pip:
name: "{{ python_packages }}"
register: connector
- name: "{{ role_name }} | install | Ensure fake root folder"
ansible.builtin.file:
path: "{{ playbook_dir }}/root"

View file

@ -11,3 +11,7 @@
- name: Set variables
ansible.builtin.import_tasks:
file: setvars.yml
- name: Install MySQL connector
ansible.builtin.import_tasks:
file: connector.yml

View file

@ -1,20 +1,29 @@
---
- name: "{{ role_name }} | setvars | Extract Podman/Docker Network Gateway"
- name: "{{ role_name }} | Setvars | Extract Podman/Docker Network Gateway"
ansible.builtin.shell:
cmd: ip route|grep default|awk '{print $3}'
register: ip_route_output
- name: "{{ role_name }} | setvars | Set Fact"
- name: "{{ role_name }} | Setvars | Set Fact"
ansible.builtin.set_fact:
connector_name: "{{ connector.name.0 }}"
gateway_addr: "{{ ip_route_output.stdout }}"
db_engine: "{{ db_engine_version | split(':') | first }}"
db_version: "{{ db_engine_version | split(':') | last }}"
connector_name: >
{{ lookup(
'file',
'/root/ansible_collections/community/mysql/tests/integration/connector'
) }}
db_engine_version: >
{{ lookup(
'file',
'/root/ansible_collections/community/mysql/tests/integration/db_engine_version'
) }}"
- name: "{{ role_name }} | setvars | Set Fact using above facts"
- name: "{{ role_name }} | Setvars | Set Fact using above facts"
ansible.builtin.set_fact:
connector_ver: "{{ connector_name.split('=')[2].strip() }}"
db_engine: "{{ db_engine_version | split(':') | first }}"
db_version: "{{ db_engine_version | split(':') | last }}"
mysql_command: >-
mysql
-h{{ gateway_addr }}
@ -29,9 +38,10 @@
-p{{ mysql_password }}
--protocol=tcp
- name: "{{ role_name }} | setvars | Debug connector info"
- name: "{{ role_name }} | Setvars | Output test informations"
ansible.builtin.debug:
msg: >
Connector name: {{ connector_name }},
Connector version: {{ connector_ver }}
db_engine: {{ db_engine }}
Connector version: {{ connector_ver }},
db_engine: {{ db_engine }},
db_version: {{ db_version }}