diff --git a/test-log-collect.sh b/test-log-collect.sh index 6e1a71b7..81e07de4 100755 --- a/test-log-collect.sh +++ b/test-log-collect.sh @@ -90,11 +90,11 @@ ${RSYNC_CMD} "${TESTING_HOME}/.ara/ansible.sqlite" "${WORKING_DIR}/logs/" || tru # when the test result is a failure. The ARA sqlite database is # still available for self generation if desired for successful # tests. -if [[ "${TEST_EXIT_CODE}" != "0" ]]; then - echo "Generating ARA report due to non-zero exit code (${TEST_EXIT_CODE})." +if [[ "${TEST_EXIT_CODE}" != "0" ]] && [[ "${TEST_EXIT_CODE}" != "true" ]]; then + echo "Generating ARA report." ${ARA_CMD} "${WORKING_DIR}/logs/ara" || true else - echo "Not generating ARA report due to test pass." + echo "Not generating ARA report." fi # Get a dmesg output so we can look for kernel failures diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index cb1be29c..f8248ae8 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -167,6 +167,4 @@ of the ``tox_env`` variable. The OpenStack-Ansible repo to execute the tests from must be specified in the ``osa_test_repo`` variable. - run: zuul.d/playbooks/cross-repo-run.yml - post-run: zuul.d/playbooks/cross-repo-post.yml nodeset: ubuntu-xenial diff --git a/zuul.d/playbooks/cross-repo-post.yml b/zuul.d/playbooks/cross-repo-post.yml deleted file mode 100644 index 52305c7f..00000000 --- a/zuul.d/playbooks/cross-repo-post.yml +++ /dev/null @@ -1,36 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- hosts: all - tasks: - - name: Run log collection script - shell: | - echo "TEST_EXIT_CODE: ${TEST_EXIT_CODE}" - if [[ -d "tests/common" ]]; then - source tests/common/test-log-collect.sh - else - echo "The common tests repo has not been cloned yet. Logs cannot be collected without it." - fi - args: - executable: "/bin/bash" - chdir: "{{ ansible_user_dir }}/src/git.openstack.org/{{ osa_test_repo }}" - environment: - TEST_EXIT_CODE: "{{ zuul_success }}" - - - name: Copy logs back to the executor - synchronize: - src: "{{ ansible_user_dir }}/src/git.openstack.org/{{ osa_test_repo }}/logs/" - dest: "{{ zuul.executor.log_root }}" - mode: pull diff --git a/zuul.d/playbooks/cross-repo-run.yml b/zuul.d/playbooks/cross-repo-run.yml deleted file mode 100644 index 8b3f9e75..00000000 --- a/zuul.d/playbooks/cross-repo-run.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -- hosts: all - tasks: - - name: Run testing script - shell: | - ./run_tests.sh {{ tox_env }} - args: - executable: "/bin/bash" - chdir: "{{ ansible_user_dir }}/src/git.openstack.org/{{ osa_test_repo }}" diff --git a/zuul.d/playbooks/post.yml b/zuul.d/playbooks/post.yml index 27b9ddf0..a516ab9e 100644 --- a/zuul.d/playbooks/post.yml +++ b/zuul.d/playbooks/post.yml @@ -15,6 +15,18 @@ - hosts: all tasks: + - name: Set current test repo (cross-repo) + set_fact: + current_test_repo: "git.openstack.org/{{ osa_test_repo }}" + when: + - osa_test_repo is defined + + - name: Set current test repo (non-cross-repo) + set_fact: + current_test_repo: "{{ zuul.project.canonical_name }}" + when: + - osa_test_repo is not defined + - name: Run log collection script shell: | echo "TEST_EXIT_CODE: ${TEST_EXIT_CODE}" @@ -25,12 +37,24 @@ fi args: executable: "/bin/bash" - chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}" + chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}" environment: - TEST_EXIT_CODE: "{{ zuul_success }}" + TEST_EXIT_CODE: "{{ zuul_success | lower }}" + + - name: Check whether a logs folder exists + stat: + path: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs" + get_attributes: no + get_checksum: no + get_md5: no + get_mime: no + register: logs_folder - name: Copy logs back to the executor synchronize: - src: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}/logs/" + src: "{{ ansible_user_dir }}/src/{{ current_test_repo }}/logs/" dest: "{{ zuul.executor.log_root }}" mode: pull + when: + - logs_folder.stat is defined + - logs_folder.stat.exists | bool diff --git a/zuul.d/playbooks/run.yml b/zuul.d/playbooks/run.yml index ec3ea448..676d3f4c 100644 --- a/zuul.d/playbooks/run.yml +++ b/zuul.d/playbooks/run.yml @@ -15,9 +15,21 @@ - hosts: all tasks: + - name: Set current test repo (cross-repo) + set_fact: + current_test_repo: "git.openstack.org/{{ osa_test_repo }}" + when: + - osa_test_repo is defined + + - name: Set current test repo (non-cross-repo) + set_fact: + current_test_repo: "{{ zuul.project.canonical_name }}" + when: + - osa_test_repo is not defined + - name: Run testing script shell: | ./run_tests.sh {{ tox_env }} args: executable: "/bin/bash" - chdir: "{{ ansible_user_dir }}/src/{{ zuul.project.canonical_name }}" + chdir: "{{ ansible_user_dir }}/src/{{ current_test_repo }}"