zuul-jobs/test-playbooks/python/fetch-tox-output.yaml
Ian Wienand 95d53aa40e setup.py: override modules to stop auto-detection
Some of our jobs have started failing with

   error: Multiple top-level packages discovered in a flat-layout:
   ['roles', 'playbooks'].
   ... <and so on> ...

which seems to be a combination of jobs that don't run often and some
recent-ish version of setuptools/pip.  From what I can tell, what we
want to do here is disable autodetection as what we have isn't really
a python distributable package.

Also fix the two places this is monkey-patched in over the existing
file.

Change-Id: I2a0dfbbedbb9bddd34b6af691118cf7c422a82b0
2022-07-27 11:14:06 +10: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-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-0.log"
delegate_to: localhost
register: _executor_artifact
failed_when: not _executor_artifact.stat.exists