This updates upload-image-swift with some changes that have merged to the originating role in opendev/zuul-providers. Hopefully with this change, we can move opendev to use this role. This anticipates https://review.opendev.org/956219 by adding a default value of zuul.image_build_name. That change is not set as a dependency because it's not strictly necessary and it's harmless if it merges out of order (or not at all). Change-Id: Ib26ae8e54174650a2d082ef2504ef70f4804dbc4
82 lines
2.2 KiB
YAML
82 lines
2.2 KiB
YAML
# Run the checksums in the background while we're working
|
|
- name: Get sha256 hash
|
|
stat:
|
|
path: '{{ upload_image_swift_filename }}'
|
|
checksum_algorithm: sha256
|
|
async: 600
|
|
poll: 0
|
|
register: sha256_task
|
|
|
|
- name: Get md5 hash
|
|
stat:
|
|
path: '{{ upload_image_swift_filename }}'
|
|
checksum_algorithm: md5
|
|
async: 600
|
|
poll: 0
|
|
register: md5_task
|
|
|
|
- name: Check if zstd is installed
|
|
shell: "command -v zstd || exit 1"
|
|
register: zstd_installed
|
|
failed_when: false
|
|
|
|
- name: Compress image
|
|
when:
|
|
- "zstd_installed.rc == 0"
|
|
- "upload_image_swift_format in ['raw', 'vhd']"
|
|
command: zstd '{{ upload_image_swift_filename }}'
|
|
|
|
- name: Set extension
|
|
set_fact:
|
|
zj_upload_image_swift_extension: ''
|
|
|
|
- name: Set extension
|
|
when:
|
|
- "zstd_installed.rc == 0"
|
|
- "upload_image_swift_format in ['raw', 'vhd']"
|
|
set_fact:
|
|
zj_upload_image_swift_extension: '.zst'
|
|
|
|
- name: Upload image to swift
|
|
upload_image_swift:
|
|
cloud: '{{ upload_image_swift_cloud_config }}'
|
|
container: '{{ upload_image_swift_container }}'
|
|
filename: '{{ upload_image_swift_filename }}{{ zj_upload_image_swift_extension }}'
|
|
name: '{{ upload_image_swift_name }}{{ zj_upload_image_swift_extension }}'
|
|
delete_after: '{{ upload_image_swift_delete_after }}'
|
|
register: upload_results
|
|
|
|
- name: Delete uncompressed image
|
|
when: "upload_image_swift_format in ['raw', 'vhd']"
|
|
command: rm '{{ upload_image_swift_filename }}'
|
|
|
|
- name: Wait for sha256
|
|
async_status:
|
|
jid: "{{ sha256_task.ansible_job_id }}"
|
|
register: sha256
|
|
until: sha256.finished
|
|
retries: 1
|
|
delay: 10
|
|
|
|
- name: Wait for md5
|
|
async_status:
|
|
jid: "{{ md5_task.ansible_job_id }}"
|
|
register: md5
|
|
until: md5.finished
|
|
retries: 1
|
|
delay: 10
|
|
|
|
- name: Return artifact to Zuul
|
|
zuul_return:
|
|
data:
|
|
zuul:
|
|
artifacts:
|
|
- name: '{{ upload_image_swift_format }} image'
|
|
url: '{{ upload_results.url }}'
|
|
metadata:
|
|
type: 'zuul_image'
|
|
image_name: '{{ upload_image_swift_image_name }}'
|
|
format: '{{ upload_image_swift_format }}'
|
|
sha256: '{{ sha256.stat.checksum }}'
|
|
md5sum: '{{ md5.stat.checksum }}'
|