ansible-role-python_venv_build/tasks/main.yml

79 lines
2.8 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: Gather variables for each operating system
include_vars: "{{ lookup('first_found', params) }}"
vars:
params:
files:
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml"
- "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
- "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml"
- "{{ ansible_facts['distribution'] | lower }}.yml"
- "{{ ansible_facts['os_family'] | lower }}.yml"
paths:
- "{{ role_path }}/vars"
tags:
- always
- name: gather build target facts
setup:
gather_subset: '!all:min'
delegate_to: "{{ item }}"
delegate_facts: true
with_items: "{{ groups['repo_all'] | default([inventory_hostname]) }}"
tags:
- always
run_once: true
# NOTE(noonedeadpunk): If you are deploying services from local forks high load on which is not
# an issue for you, you can disable this with `venv_wheel_build_skip_check: true`
- name: Fail if wheels are not built for multiple hosts
fail:
msg: >-
You are not building wheels while running role against multiple hosts.
This might result in DOS-ing OpenDev infrustructure servers.
In order to proceed, please ensure that you have repo servers
for selected OS version and architecture.
If you want to avoid building wheel on purpose, ensure that you run
playbook in serial manner.
In case of causing unreasonable load on the opendev.org git servers,
your access may be blocked to protect other users and the OpenDev CI
infrastructure which are reliant on this service.
Found venv_build_targets: {{ venv_build_targets }}
when:
- not venv_wheel_build_enable | bool
- ansible_play_batch | length > 2
- not (venv_wheel_build_skip_check | default(False))
- include_tasks: "python_venv_wheel_build.yml"
args:
apply:
tags:
- build
when:
- venv_wheel_build_enable | bool
- inventory_hostname in _venv_wheels_first_play_hosts
tags:
- always
- import_tasks: "python_venv_install.yml"
tags:
- install
- import_tasks: "python_venv_set_facts.yml"
tags:
- install