Merge "create-venv: make upgrade venv once per day"

This commit is contained in:
Zuul 2022-12-07 22:47:57 +00:00 committed by Gerrit Code Review
commit a4de077ed1
2 changed files with 37 additions and 16 deletions

View File

@ -2,36 +2,53 @@
assert: assert:
that: create_venv_path is defined that: create_venv_path is defined
- name: Ensure venv dir
file:
path: '{{ create_venv_path }}'
state: directory
# Xenial's default pip will try to pull in packages that # Xenial's default pip will try to pull in packages that
# aren't compatible with 3.5. Cap them # aren't compatible with 3.5. Cap them
- name: Setup bionic era venv - name: Setup requirements for bionic
when: ansible_distribution_version is version('16.04', '==') when: ansible_distribution_version is version('16.04', '==')
pip: set_fact:
name: _venv_requirements:
- pip<21 - pip<21
- setuptools<51 - setuptools<51
state: latest
virtualenv: '{{ create_venv_path }}'
virtualenv_command: '/usr/bin/python3 -m venv'
# Bionic's default pip will try to pull in packages that # Bionic's default pip will try to pull in packages that
# aren't compatible with 3.6. Cap them # aren't compatible with 3.6. Cap them
- name: Setup bionic era venv - name: Setup requirements for Bionic
when: ansible_distribution_version is version('18.04', '==') when: ansible_distribution_version is version('18.04', '==')
pip: set_fact:
name: _venv_requirements:
- pip<22 - pip<22
- setuptools<60 - setuptools<60
state: latest
virtualenv: '{{ create_venv_path }}'
virtualenv_command: '/usr/bin/python3 -m venv'
- name: Setup later era venv - name: Setup requirements for later era
when: ansible_distribution_version is version('20.04', '>=') when: ansible_distribution_version is version('20.04', '>=')
pip: set_fact:
name: _venv_requirements:
- pip - pip
- setuptools - setuptools
state: latest
# This is used to timestamp the requirements-venv.txt file. This
# means we will run --upgrade on the venv once a day, but otherwise
# leave it alone.
- name: Get current day
shell: 'date +%Y-%m-%d'
register: _date
- name: Write requirements
template:
src: requirements-venv.txt
dest: '{{ create_venv_path }}/requirements-venv.txt'
register: _venv_requirements_txt
- name: Create or upgrade venv
when: _venv_requirements_txt.changed
pip:
requirements: '{{ create_venv_path }}/requirements-venv.txt'
extra_args: '--upgrade'
virtualenv: '{{ create_venv_path }}' virtualenv: '{{ create_venv_path }}'
virtualenv_command: '/usr/bin/python3 -m venv' virtualenv_command: '/usr/bin/python3 -m venv'

View File

@ -0,0 +1,4 @@
# Update timestamp: {{ _date.stdout }}
{% for r in _venv_requirements %}
{{ r }}
{% endfor %}