summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/pip/tasks/main.yml
blob: 66992fd017e591c7c0adfc514e408cfc7f82a272 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Current pip unconditionally uses md5.
# We can re-enable if pip switches to a different hash or allows us to not check md5.

- name: Python 2
  when: ansible_python.version.major == 2
  block:
    - name: find virtualenv command
      command: "which virtualenv virtualenv-{{ ansible_python.version.major }}.{{ ansible_python.version.minor }}"
      register: command
      ignore_errors: true

    - name: is virtualenv available to python -m
      command: '{{ ansible_python_interpreter }} -m virtualenv'
      register: python_m
      when: not command.stdout_lines
      failed_when: python_m.rc != 2

    - name: remember selected virtualenv command
      set_fact:
        virtualenv: "{{ command.stdout_lines[0] if command is successful else ansible_python_interpreter ~ ' -m virtualenv' }}"

- name: Python 3+
  when: ansible_python.version.major > 2
  block:
    - name: remember selected virtualenv command
      set_fact:
        virtualenv: "{{ ansible_python_interpreter ~ ' -m venv' }}"

- block:
    - name: install git, needed for repo installs
      package:
        name: git
        state: present
      when: ansible_distribution not in ["MacOSX", "Alpine"]
      register: git_install

    - name: ensure wheel is installed
      pip:
        name: wheel
        extra_args: "-c {{ remote_constraints }}"

    - include_tasks: pip.yml
  always:
    - name: platform specific cleanup
      include_tasks: "{{ cleanup_filename }}"
      with_first_found:
        - "{{ ansible_distribution | lower }}_cleanup.yml"
        - "default_cleanup.yml"
      loop_control:
        loop_var: cleanup_filename
  when: ansible_fips|bool != True
  module_defaults:
    pip:
      virtualenv_command: "{{ virtualenv }}"