f76cfbab11
This fixes a number of places where we do not have spaces between filters. I think that this is a reasonable rule for readability (I also think it probably was enforced, but maybe later versions got better at detecting it?). These are detected by a later version of Ansible lint; this change should have no operational change to any roles but prepares us to update in a follow-on change. Change-Id: I07e1a109b87adce86f483d14d7e02fcecb8313d5
103 lines
3.8 KiB
YAML
103 lines
3.8 KiB
YAML
- name: Fail if artifactory instance is not defined
|
|
fail:
|
|
msg: "Instance {{ zj_artifact.instance }} is not defined."
|
|
when: zj_artifact.instance not in upload_artifactory_instances
|
|
|
|
- name: Make sure artifact exists on the executor
|
|
stat:
|
|
path: "{{ _undocumented_test_work_dir_ | default(zuul.executor.work_root) }}\
|
|
/artifacts/{{ zj_artifact.src }}"
|
|
register: artifact
|
|
delegate_to: "{{ _undocumented_test_worker_node_ | default('localhost') }}"
|
|
failed_when: not artifact.stat.exists
|
|
|
|
- name: Get sha256 checksum
|
|
stat:
|
|
path: "{{ _undocumented_test_work_dir_ | default(zuul.executor.work_root) }}\
|
|
/artifacts/{{ zj_artifact.src }}"
|
|
checksum_algorithm: sha256
|
|
delegate_to: "{{ _undocumented_test_worker_node_ | default('localhost') }}"
|
|
register: artifact_sha256_checksum
|
|
|
|
- name: Set request header fact
|
|
set_fact:
|
|
request_header:
|
|
X-Checksum-Sha1: "{{ artifact.stat.checksum }}"
|
|
X-Checksum-Sha256: "{{ artifact_sha256_checksum.stat.checksum }}"
|
|
|
|
- name: Add artifact headers
|
|
set_fact:
|
|
request_header: "{{ request_header | combine(zj_artifact.headers | default({})) }}"
|
|
|
|
- name: Add api key to header
|
|
when: "'api_key' in upload_artifactory_instances[zj_artifact.instance]"
|
|
no_log: true
|
|
set_fact:
|
|
request_header: "{{ request_header |
|
|
combine({'X-JFrog-Art-Api': upload_artifactory_instances[zj_artifact.instance].api_key}) }}"
|
|
|
|
- name: Set artifactory password
|
|
no_log: true
|
|
set_fact:
|
|
_artifactory_password: "{{ upload_artifactory_instances[zj_artifact.instance].password }}"
|
|
when:
|
|
- "'api_key' not in upload_artifactory_instances[zj_artifact.instance]"
|
|
- "'password' in upload_artifactory_instances[zj_artifact.instance]"
|
|
|
|
- name: Set artifactory backend url fact
|
|
set_fact:
|
|
_artifactory_backend_url: "\
|
|
{{ upload_artifactory_instances[zj_artifact.instance].transport | default('https') }}://\
|
|
{{ upload_artifactory_instances[zj_artifact.instance].fqdn }}/\
|
|
artifactory/\
|
|
{{ zj_artifact.dest }}"
|
|
|
|
- name: Set artifact properties
|
|
set_fact:
|
|
zj_artifact_properties: >-
|
|
{%- set zj_properties = [] -%}
|
|
{%- for zj_p in (zj_aps) -%}
|
|
{%- if zj_p.value is string -%}
|
|
{%- set _ = zj_properties.append(zj_p.key + '=' + zj_p.value) -%}
|
|
{%- elif zj_p.value is iterable and zj_p.value is not mapping -%}
|
|
{%- set _ = zj_properties.append(zj_p.key + '=' + zj_p.value | join(',')) -%}
|
|
{%- endif -%}
|
|
{%- endfor -%}
|
|
{{ zj_properties | join(';') }}
|
|
vars:
|
|
zj_aps: "{{ zj_artifact.properties | default({}) | dict2items }}"
|
|
|
|
- name: Set upload url
|
|
set_fact:
|
|
_artifactory_upload_url: "\
|
|
{%- if zj_artifact_properties | length -%}
|
|
{{ _artifactory_backend_url }};{{ zj_artifact_properties | default('') }}\
|
|
{%- else -%}
|
|
{{ _artifactory_backend_url }}\
|
|
{%- endif -%}"
|
|
|
|
- name: Upload artifact
|
|
no_log: true
|
|
uri:
|
|
user: "{{ upload_artifactory_instances[zj_artifact.instance].user }}"
|
|
password: "{{ _artifactory_password | default(omit) }}"
|
|
url: "{{ _artifactory_upload_url }}"
|
|
src: "{{ _undocumented_test_work_dir_ | default(zuul.executor.work_root) }}/\
|
|
artifacts/{{ zj_artifact.src }}"
|
|
headers: "{{ request_header }}"
|
|
status_code: 201
|
|
method: PUT
|
|
force_basic_auth: "{{ upload_artifactory_instances[zj_artifact.instance].force_basic_auth |
|
|
default(false) | bool }}"
|
|
remote_src: yes # To not unecessarily copy artifact to a tempfile
|
|
delegate_to: "{{ _undocumented_test_worker_node_ | default('localhost') }}"
|
|
|
|
- name: Add artifact link to build page
|
|
zuul_return:
|
|
data:
|
|
zuul:
|
|
artifacts:
|
|
- name: "{{ zj_artifact.name }}"
|
|
url: "{{ _artifactory_backend_url }}"
|
|
metadata: "{{ zj_artifact.metadata | default(omit) }}"
|