mirror of
https://github.com/ansible-collections/community.mysql.git
synced 2025-07-26 22:51:25 -07:00
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:
parent
9da866a7bf
commit
98ce2af28c
7 changed files with 35 additions and 22 deletions
7
.github/workflows/ansible-test-plugins.yml
vendored
7
.github/workflows/ansible-test-plugins.yml
vendored
|
@ -15,9 +15,6 @@ on:
|
||||||
- cron: '0 6 * * *'
|
- cron: '0 6 * * *'
|
||||||
|
|
||||||
|
|
||||||
env:
|
|
||||||
config_file: "tests/integration/targets/setup_controller/defaults/main.yml"
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# sanity:
|
# sanity:
|
||||||
# name: "Sanity (Ansible: ${{ matrix.ansible }})"
|
# name: "Sanity (Ansible: ${{ matrix.ansible }})"
|
||||||
|
@ -128,9 +125,9 @@ jobs:
|
||||||
ansible-core-version: ${{ matrix.ansible }}
|
ansible-core-version: ${{ matrix.ansible }}
|
||||||
pre-test-cmd: >-
|
pre-test-cmd: >-
|
||||||
>&2 echo Setting db_engine_version to ${{ matrix.db_engine_version }}...;
|
>&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 }}...;
|
>&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 }}
|
target-python-version: ${{ matrix.python }}
|
||||||
testing-type: integration
|
testing-type: integration
|
||||||
|
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -1,5 +1,7 @@
|
||||||
.PHONY: test-integration
|
.PHONY: test-integration
|
||||||
test-integration:
|
test-integration:
|
||||||
|
echo "mysql:8.0.22" > tests/integration/db_engine_version
|
||||||
|
echo "pymysql==0.9.3" > tests/integration/connector
|
||||||
podman run \
|
podman run \
|
||||||
--detach \
|
--detach \
|
||||||
--name primary \
|
--name primary \
|
||||||
|
@ -32,7 +34,9 @@ test-integration:
|
||||||
--volume ./tests/integration/targets/setup_mysql/replica2/:/etc/mysql/conf.d/ \
|
--volume ./tests/integration/targets/setup_mysql/replica2/:/etc/mysql/conf.d/ \
|
||||||
mysql:8.0.22
|
mysql:8.0.22
|
||||||
while ! podman healthcheck run primary && [[ "$$SECONDS" -lt 120 ]]; do sleep 1; done
|
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
|
-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 primary
|
||||||
podman stop --time 0 --ignore replica1
|
podman stop --time 0 --ignore replica1
|
||||||
podman stop --time 0 --ignore replica2
|
podman stop --time 0 --ignore replica2
|
||||||
|
|
|
@ -1,4 +1,2 @@
|
||||||
---
|
---
|
||||||
home_dir: "{{ playbook_dir }}/root"
|
home_dir: "{{ playbook_dir }}/root"
|
||||||
db_engine_version: mysql:8.0.22
|
|
||||||
python_packages: [pymysql == 0.9.3]
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: "{{ role_name }} | Connector | Install python packages"
|
||||||
|
ansible.builtin.pip:
|
||||||
|
name: "{{ connector_name }}"
|
|
@ -11,11 +11,6 @@
|
||||||
environment:
|
environment:
|
||||||
DEBIAN_FRONTEND: noninteractive
|
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"
|
- name: "{{ role_name }} | install | Ensure fake root folder"
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ playbook_dir }}/root"
|
path: "{{ playbook_dir }}/root"
|
||||||
|
|
|
@ -11,3 +11,7 @@
|
||||||
- name: Set variables
|
- name: Set variables
|
||||||
ansible.builtin.import_tasks:
|
ansible.builtin.import_tasks:
|
||||||
file: setvars.yml
|
file: setvars.yml
|
||||||
|
|
||||||
|
- name: Install MySQL connector
|
||||||
|
ansible.builtin.import_tasks:
|
||||||
|
file: connector.yml
|
||||||
|
|
|
@ -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:
|
ansible.builtin.shell:
|
||||||
cmd: ip route|grep default|awk '{print $3}'
|
cmd: ip route|grep default|awk '{print $3}'
|
||||||
register: ip_route_output
|
register: ip_route_output
|
||||||
|
|
||||||
- name: "{{ role_name }} | setvars | Set Fact"
|
- name: "{{ role_name }} | Setvars | Set Fact"
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
connector_name: "{{ connector.name.0 }}"
|
|
||||||
gateway_addr: "{{ ip_route_output.stdout }}"
|
gateway_addr: "{{ ip_route_output.stdout }}"
|
||||||
db_engine: "{{ db_engine_version | split(':') | first }}"
|
connector_name: >
|
||||||
db_version: "{{ db_engine_version | split(':') | last }}"
|
{{ 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:
|
ansible.builtin.set_fact:
|
||||||
connector_ver: "{{ connector_name.split('=')[2].strip() }}"
|
connector_ver: "{{ connector_name.split('=')[2].strip() }}"
|
||||||
|
db_engine: "{{ db_engine_version | split(':') | first }}"
|
||||||
|
db_version: "{{ db_engine_version | split(':') | last }}"
|
||||||
mysql_command: >-
|
mysql_command: >-
|
||||||
mysql
|
mysql
|
||||||
-h{{ gateway_addr }}
|
-h{{ gateway_addr }}
|
||||||
|
@ -29,9 +38,10 @@
|
||||||
-p{{ mysql_password }}
|
-p{{ mysql_password }}
|
||||||
--protocol=tcp
|
--protocol=tcp
|
||||||
|
|
||||||
- name: "{{ role_name }} | setvars | Debug connector info"
|
- name: "{{ role_name }} | Setvars | Output test informations"
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: >
|
msg: >
|
||||||
Connector name: {{ connector_name }},
|
Connector name: {{ connector_name }},
|
||||||
Connector version: {{ connector_ver }}
|
Connector version: {{ connector_ver }},
|
||||||
db_engine: {{ db_engine }}
|
db_engine: {{ db_engine }},
|
||||||
|
db_version: {{ db_version }}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue