zuul-jobs/test-playbooks/python/fetch-tox-output.yaml
Clark Boylan e5dc872f09 Move tox logs into env specific dirs
New tox>=4 does not prefix the filenames with the env name. THis means
we'll squash together log files if more than one env is run. Address
this while on tox v3 to avoid regressions.

Change-Id: I2601cc7faa1f7a5d7f2d950d637dfa84c50717ae
2022-12-07 13:54:23 -08:00

70 lines
1.9 KiB
YAML

- hosts: all
pre_tasks:
# Run ensure-output-dirs now as it is not performed speculatively
- import_role:
name: ensure-output-dirs
- name: Simplify tox config
copy:
content: "{{ item.content }}"
dest: "{{ zuul.project.src_dir }}/{{ item.dest }}"
with_items:
- content: |
[testenv]
sitepackages = True
usedevelop = True
[testenv:venv]
commands = python -c 'exit(0)'
dest: tox.ini
- content: |
import setuptools
setuptools.setup(py_modules=[])
dest: setup.py
- content: ""
dest: setup.cfg
- name: Generate tox results
include_role:
name: "{{ item }}"
with_items:
- ensure-tox
- ensure-python
- tox
tasks:
- import_role:
name: fetch-tox-output
vars:
tox_envlist: "ALL"
- block:
- name: Undo the log_path fact set by fetch-javascript-output
set_fact:
log_path: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
when: groups['all'] | length > 1
- name: Undo the log_path fact set log path for single node
set_fact:
log_path: "{{ zuul.executor.log_root }}"
when: groups['all'] | length == 1
- import_role:
name: fetch-output
when: zuul_use_fetch_output
post_tasks:
- name: Check for artifact on the test instance
stat:
path: "{{ ansible_user_dir }}/zuul-output/logs/tox/venv/venv-0.log"
register: _test_artifact
failed_when: not _test_artifact.stat.exists
when: zuul_use_fetch_output
- name: Check for artifact on the executor
stat:
path: "{{ zuul.executor.log_root }}/tox/venv/venv-0.log"
delegate_to: localhost
register: _executor_artifact
failed_when: not _executor_artifact.stat.exists