53 lines
1.7 KiB
YAML
53 lines
1.7 KiB
YAML
|
---
|
||
|
- name: "{{ test.name }} | install test packages"
|
||
|
dnf: name="{{ test.package }}-tests" state=installed
|
||
|
|
||
|
- name: "{{ test.name }} | define helper variables"
|
||
|
set_fact:
|
||
|
test_name_oneword: "{{ test.name | replace(' ','-') }}"
|
||
|
|
||
|
# UGH. This is necessary because our caller sets some environment variables
|
||
|
# and we need to set a few more based on other caller variables; then we
|
||
|
# need to combine the two dicts when running the test. This seems to be
|
||
|
# the only way to do it in ansible.
|
||
|
- name: "{{ test.name }} | define local environment"
|
||
|
set_fact:
|
||
|
local_environment:
|
||
|
TEST_NAME: "{{ test.name }}"
|
||
|
TEST_PACKAGE: "{{ test.package }}"
|
||
|
TEST_ENV: "{{ test.environment }}"
|
||
|
|
||
|
- name: "{{ test.name }} | setup/teardown helper | see if exists"
|
||
|
local_action: stat path={{ role_path }}/files/helper.{{ test_name_oneword }}.sh
|
||
|
register: helper
|
||
|
|
||
|
- name: "{{ test.name }} | setup/teardown helper | install"
|
||
|
copy: src=helper.{{ test_name_oneword }}.sh dest=/tmp/helper.sh
|
||
|
when: helper.stat.exists
|
||
|
|
||
|
- name: "{{ test.name }} | run test"
|
||
|
script: ./run_bats_tests.sh
|
||
|
args:
|
||
|
chdir: /usr/share/{{ test.package }}/test/system
|
||
|
become: "{{ true if test.become is defined else false }}"
|
||
|
become_user: testuser
|
||
|
environment: "{{ local_environment | combine(test.environment) }}"
|
||
|
|
||
|
- name: "{{ test.name }} | pull logs"
|
||
|
fetch:
|
||
|
src: "/tmp/artifacts/test.{{ test_name_oneword }}.{{ item }}.log"
|
||
|
dest: "{{ artifacts }}/"
|
||
|
flat: yes
|
||
|
with_items:
|
||
|
- bats
|
||
|
- debug
|
||
|
|
||
|
- name: "{{ test.name }} | remove remote logs and helpers"
|
||
|
file:
|
||
|
dest=/tmp/{{ item }}
|
||
|
state=absent
|
||
|
with_items:
|
||
|
- artifacts/test.{{ test_name_oneword }}.bats.log
|
||
|
- artifacts/test.{{ test_name_oneword }}.debug.log
|
||
|
- helper.sh
|