--- # Copyright 2016, 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. - name: Executing tempest and collect results block: - name: Execute tempest tests ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi tempest run \ {% if tempest_run_concurrency is defined %} --concurrency {{ tempest_run_concurrency }} \ {% else %} --serial \ {% endif %} {% if tempest_test_worker_file_path is defined %} --worker-file {{ tempest_test_worker_file_path }} \ {% endif %} {% if _tempest_test_excludelist | length > 0 %} --exclude-list {{ tempest_excludelist_file_path }} \ {% endif %} --include-list {{ tempest_includelist_file_path }} > {{ tempest_log_dir }}/tempest_run.log args: chdir: "{{ tempest_workspace }}" executable: /bin/bash changed_when: false register: tempest_tests_run tags: # don't trigger ANSIBLE0013 - skip_ansible_lint always: - name: Generate raw subunit results # Despite not using testrepository, we leave the output filename as # testrepository.subunit as the OpenStack Health dashboard relies on # subunit files with this particular name. # NOTE(mattt): At present we're not placing this file in a valid location # to be used by the OpenStack Health dashboard. ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi {{ stestr_executable }} last --subunit > {{ tempest_log_dir }}/testrepository.subunit args: chdir: "{{ tempest_workspace }}" executable: /bin/bash changed_when: false failed_when: false tags: # don't trigger ANSIBLE0013 - skip_ansible_lint - name: Generate xml subunit results ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi subunit2junitxml {{ tempest_log_dir }}/testrepository.subunit > {{ tempest_log_dir }}/tempest_results.xml args: chdir: "{{ tempest_workspace }}" executable: /bin/bash changed_when: false failed_when: false tags: # don't trigger ANSIBLE0013 - skip_ansible_lint - name: Generate html subunit results ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi subunit2html {{ tempest_log_dir }}/testrepository.subunit {{ tempest_log_dir }}/stestr_results.html args: chdir: "{{ tempest_workspace }}" executable: /bin/bash changed_when: false failed_when: false tags: # don't trigger ANSIBLE0013 - skip_ansible_lint - name: Generate test-list file ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi tempest run \ --include-list {{ tempest_includelist_file_path }} \ {% if _tempest_test_excludelist | length > 0 %} --exclude-list {{ tempest_excludelist_file_path }} \ {% endif %} --list-tests &> {{ tempest_log_dir }}/test_list.txt args: chdir: "{{ tempest_workspace }}" executable: /bin/bash changed_when: false failed_when: false # Copy module doesn't copy recursively with remote_src set to true - name: Copy stackviz-html to home directory ansible.builtin.shell: | cp -r {{ stackviz_venv_bin | dirname }}/share/stackviz-html {{ tempest_log_dir }}/stackviz args: executable: /bin/bash tags: # don't trigger ANSIBLE0013 - skip_ansible_lint when: tempest_run_stackviz | bool - name: Collecting data from tempest run ansible.builtin.shell: | . {{ stackviz_venv_bin }}/activate stackviz-export -f {{ tempest_log_dir }}/testrepository.subunit --env {{ tempest_log_dir }}/stackviz/data args: chdir: "{{ tempest_workspace }}" executable: /bin/bash tags: # don't trigger ANSIBLE0013 - skip_ansible_lint when: tempest_run_stackviz | bool - name: Create tempest failing tests file ansible.builtin.shell: | set -e if [ -d {{ tempest_venv_bin }} ]; then . {{ tempest_venv_bin }}/activate fi {{ stestr_executable }} failing --list > {{ tempest_log_dir }}/failing_tests.log args: chdir: "{{ tempest_workspace }}" executable: /bin/bash failed_when: false changed_when: false tags: # don't trigger ANSIBLE0013 - skip_ansible_lint when: tempest_tests_run.rc != 0 - name: Fail if tempest tests did not succeed ansible.builtin.assert: that: - "tempest_tests_run.rc == 0"