# TODO(mordred) rework tox-siblings so it can be used here - probably by # making it take a parameter as to what path to python/pip to use. - name: Find Constraints File include_role: name: find-constraints - name: Check to see if the project is a python project find: paths: "{{ zuul_work_dir }}" patterns: - setup.cfg - setup.py register: found_python_files when: install_package # Installing the directory with the constraints flag can hit into problems # with conflicting values between constraints and current project. So look # for a requirements.txt file so we can install it directly. - name: Check to see if the project has a requirements.txt file stat: get_checksum: false get_mime: false get_md5: false path: "{{ zuul_work_dir }}/requirements.txt" register: requirements_file - name: Install requirements if they exist pip: chdir: "{{ zuul_work_dir }}" virtualenv: "{{ zuul_work_virtualenv }}" requirements: requirements.txt extra_args: "{{ upper_constraints | default(omit) }}" register: requirements_install when: - install_package - found_python_files.matched - requirements_file.stat.exists failed_when: - error_on_failure is defined - error_on_failure - requirements_install is failed # Build an sdist. This is needed for pbr projects that may expect # the ChangeLog to have been generated. - name: Make sdist to generate ChangeLog command: cmd: "{{ zuul_work_virtualenv }}/bin/python setup.py sdist" chdir: "{{ zuul_work_dir }}" when: - install_package - found_python_files.matched register: sdist_results failed_when: - error_on_failure is defined - error_on_failure - sdist_results is failed # Try installing current repo in case it needs to be available for # example for version number calculation. Ignore any failures here. - name: Install the project if it is a Python project pip: chdir: "{{ zuul_work_dir }}" virtualenv: "{{ zuul_work_virtualenv }}" name: . extra_args: --no-deps when: - install_package - found_python_files.matched register: install_package_results failed_when: - error_on_failure is defined - error_on_failure - install_package_results is failed