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 * * *'
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
|
4
Makefile
4
Makefile
|
@ -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
|
||||
|
|
|
@ -1,4 +1,2 @@
|
|||
---
|
||||
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:
|
||||
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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue