ansible-role-python_venv_build/tasks/python_venv_preflight.yml
Jesse Pretorius eea695ecaa Use the virtualenv's pip to build the wheels
Instead of requiring pip installed on the host, we can
use the pip in the virtualenv instead. This keeps the
host cleaner.

Change-Id: I8d6c77e2cfa2cbcd81df21c7ed22a0a344d3b55c
2018-08-19 20:15:37 +01:00

64 lines
2.2 KiB
YAML

---
# Copyright 2018, 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: Verify that venv_install_destination_path has been provided
fail:
msg: |
The variable venv_install_destination_path is required and
has not been set.
when:
- venv_install_destination_path is not defined
- name: Collect the version of virtualenv
shell: |
virtualenv --version 2>/dev/null || echo 'none'
args:
executable: /bin/bash
changed_when: false
failed_when: false
register: _virtualenv_version
- name: Fail when required virtualenv version is not present
fail:
msg: >-
The required virtualenv version is not present.
The minimum version of 1.10 is required, but
{{ _virtualenv_version.stdout }} is installed.
when:
- ((_virtualenv_version.stdout | trim) == 'none') or
((_virtualenv_version.stdout | trim) is version_compare('1.10', '<'))
- name: Set the correct virtualenv parameter to prevent downloads when creating
set_fact:
_venv_create_no_download: >-
{{ ((_virtualenv_version.stdout | trim) is version_compare('14.0.0', '<')) | ternary('--never-download', '--no-download') }}
- name: Check whether the venv_install_source_path is a URL or a file path
set_fact:
_venv_source: "{{ ((venv_install_source_path | trim) is match('^https?://.*')) | ternary('url', 'file') }}"
- name: Check if venv tgz is present on the deployment host
stat:
path: "{{ venv_install_source_path }}/{{ venv_install_destination_path | basename }}.tgz"
get_attributes: no
get_checksum: no
get_md5: no
get_mime: no
register: _src_venv_present
delegate_to: localhost
run_once: yes
when:
- _venv_source == 'file'