Albin Vass d0e2016592 Add loop var policy to ansible-lint
This adds a custom ansible-lint rule at .rules/ZuulJobsNamespaceLoopVar.py
that enforces the loop var policy described at:
https://zuul-ci.org/docs/zuul-jobs/policy.html#ansible-loops-in-roles

It also updates existing roles to follow the policy.

Change-Id: I92b2ff56a1c2702542fc07b316f1809087a4c92f
2020-04-29 17:20:59 +02:00

59 lines
1.5 KiB
YAML

- name: Create tarball
shell: "tar czf {{ ansible_user_dir }}/{{ zuul_work_dir }}/build.tgz *"
args:
chdir: "{{ zuul_work_dir }}/{{ create_tarball_directory }}"
when: create_tarball_directory is defined
tags:
# Ignore ANSIBLE0006: tar used in place of unarchive module
- skip_ansible_lint
- name: Rename tarball for uploading
shell: |
mkdir -p dist
cp *.tgz dist/{{ zuul.project.short_name }}-content-latest.tar.gz
args:
chdir: "{{ zuul_work_dir }}"
tags:
# Ignore ANSIBLE0007: No need to use file module instead of mkdir
- skip_ansible_lint
- name: Rename tagged tarball for uploading
when: zuul.tag is defined
shell: |
cp *.tgz dist/{{ zuul.project.short_name }}-content-{{ zuul.tag }}.tar.gz
args:
chdir: "{{ zuul_work_dir }}"
- name: Ensure artifacts directory exists
file:
path: "{{ zuul.executor.work_root }}/artifacts"
state: directory
delegate_to: localhost
- name: Collect artifacts
synchronize:
dest: "{{ zuul.executor.work_root }}/artifacts/"
mode: pull
src: "{{ zuul_work_dir }}/dist/"
verify_host: true
- name: Find content tarball
find:
file_type: file
paths: "{{ zuul_work_dir }}/dist/"
patterns: "*.tar.gz"
register: result
- name: Return artifacts to Zuul
loop: "{{ result.files }}"
loop_control:
loop_var: zj_item
zuul_return:
data:
zuul:
artifacts:
- name: Javascript content archive
url: "artifacts/{{ zj_item.path | basename }}"
metadata:
type: javascript_content