James E. Blair 11e51443b7 Add ensure-pip to python release pre-run playbook
This is required in order to avoid this error:

  ModuleNotFoundError: No module named 'setuptools'

The version of ansible-lint we were using has a bug which causes a
false positive on ensure-pip, so we update the ansible-lint version
to match that in zuul-jobs and update the skips accordingly.  This
also flags lack of spaces in {{braces}} so those instances are
fixed.

Change-Id: I9d122631126ab65507f0a5616ff6741066a7acf8
2020-07-23 09:25:03 -07:00

45 lines
1.7 KiB
YAML

- hosts: localhost
vars:
name_replacement: '.*?(-py.*?\.whl|\.tar\.gz)'
name_extra: "{{ (artifact_extra_name|default('') and '-'+artifact_extra_name or '') | regex_replace('[^a-zA-z1-9_\\-.]', '') }}"
name_target: "{{ zuul.project.short_name }}{{ name_extra }}-{{ zuul.branch | replace('/', '-') }}\\1"
tasks:
- name: Check execution context
when: "zuul.branch is not defined"
fail:
msg: "This playbook must be run in a branch-based pipeline (e.g., 'promote')."
- name: Create artifact staging directory
file:
state: directory
path: "{{ zuul.executor.work_root }}/artifacts"
- name: Download artifacts
include_role:
name: download-artifact
vars:
# download_artifact_job: provided by zuul job
download_artifact_api: "https://zuul.opendev.org/api/tenant/{{ zuul.tenant }}"
# download_artifact_name: provided by zuul job
download_artifact_pipeline: gate
download_artifact_directory: "{{ zuul.executor.work_root }}/artifacts"
- name: Find artifacts
find:
paths: "{{ zuul.executor.work_root }}/artifacts"
register: files
- name: Set target directory
set_fact:
target_dir: "{{ afs.artifacts_path }}"
- name: Get an AFS token
include_role:
name: create-afs-token
- name: Ensure target directory exists
file:
path: "{{ target_dir }}"
state: directory
- name: Upload to AFS
command: "cp {{ item.path }} {{ target_dir }}/{{ item.path | basename | regex_replace(name_replacement, name_target) }}"
when: "item.path is match(name_replacement)"
loop: "{{ files.files }}"
- name: Destroy AFS token
include_role:
name: destroy-afs-token