From 6161193bd964827f043463b4e7df71f3c937bb1a Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Jun 24 2020 15:09:01 +0000 Subject: run rpm-test job in test-tests-def template Also: - run-tests-yml: do not fail when zuul-built repo is not defined - discover whether tests.yml is located into the root directory or into the tests directory. --- diff --git a/roles/fetch-tests-yml-artifacts/tasks/main.yml b/roles/fetch-tests-yml-artifacts/tasks/main.yml index e70d6fb..fec6d12 100644 --- a/roles/fetch-tests-yml-artifacts/tasks/main.yml +++ b/roles/fetch-tests-yml-artifacts/tasks/main.yml @@ -1,5 +1,14 @@ +- name: Discover base directory of tests.yml + shell: mkdir -p tests && find . tests -maxdepth 1 -type f -name tests.yml | head -1 | xargs dirname + register: discover_tests_basedir + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + +- set_fact: + tests_dir: "{{ discover_tests_basedir.stdout }}" + - name: Fetch test artifacts synchronize: - src: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/artifacts' + src: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ tests_dir }}/artifacts' dest: '{{ zuul.executor.log_root }}/' mode: pull diff --git a/roles/run-tests-yml/tasks/main.yaml b/roles/run-tests-yml/tasks/main.yaml index 482bf72..ba59b19 100644 --- a/roles/run-tests-yml/tasks/main.yaml +++ b/roles/run-tests-yml/tasks/main.yaml @@ -25,6 +25,9 @@ - name: Get changes generated packages shell: repoquery -q --repo zuul-built --all | egrep -v '\.src$' register: repoquery + failed_when: + - repoquery.rc != 0 + - repoquery.rc != 1 - name: Install changes generated packages yum: @@ -32,31 +35,41 @@ state: latest become: true loop: "{{ repoquery.stdout_lines }}" + when: repoquery.rc == 0 + +- name: Discover base directory of tests.yml + shell: mkdir -p tests && find . tests -maxdepth 1 -type f -name tests.yml | head -1 | xargs dirname + register: discover_tests_basedir + args: + chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" + +- set_fact: + tests_dir: "{{ discover_tests_basedir.stdout }}" - name: Run the tests - command: ansible-playbook tests/tests.yml + command: ansible-playbook {{ tests_dir }}/tests.yml args: chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}" become: yes - name: Ensure tests/artifacts exists file: - path: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/artifacts" + path: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ tests_dir }}/artifacts" state: directory - name: Dump installed packages list become: yes shell: > dnf list --installed > - {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/artifacts/installed-packages.list + {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ tests_dir }}/artifacts/installed-packages.list - name: Check a STI results.yml file exists in the artifacts stat: - path: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/artifacts/results.yml' + path: '{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ tests_dir }}/artifacts/results.yml' register: sti_results_stat - name: Check for test failures in the STI results.yml file - shell: "grep 'result: fail' {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/artifacts/results.yml" + shell: "grep 'result: fail' {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/{{ tests_dir }}/artifacts/results.yml" register: grep_failure failed_when: grep_failure.rc == 0 when: sti_results_stat.stat.exists diff --git a/zuul.d/templates.yaml b/zuul.d/templates.yaml index c4f13f2..9c106cc 100644 --- a/zuul.d/templates.yaml +++ b/zuul.d/templates.yaml @@ -42,4 +42,4 @@ name: test-tests-def check: jobs: - - noop + - rpm-test