
Add a job that collects built OpenAPI specs and prepares a single delivery. Those can be then places to some authority location similar to the service-types-authority. Change-Id: I18bfb2a5195f88153d3a23072bc8a4351a5b7f1b
57 lines
1.7 KiB
YAML
57 lines
1.7 KiB
YAML
---
|
|
- hosts: all
|
|
vars:
|
|
specs_src: "{{ ansible_user_dir }}/{{ codegenerator_work_dir }}/openapi_specs"
|
|
tasks:
|
|
- name: Ensure local output dirs
|
|
delegate_to: localhost
|
|
ansible.builtin.file:
|
|
path: "{{ zj_output_dir }}"
|
|
state: directory
|
|
mode: 0755
|
|
with_items:
|
|
- "{{ zuul.executor.work_root }}/artifacts"
|
|
loop_control:
|
|
loop_var: zj_output_dir
|
|
|
|
- name: Collect OpenAPI specs
|
|
synchronize:
|
|
dest: "{{ zj_output.dest }}"
|
|
mode: pull
|
|
src: "{{ zj_output.src }}"
|
|
verify_host: true
|
|
owner: false
|
|
group: false
|
|
loop:
|
|
- dest: "{{ zuul.executor.work_root }}/artifacts"
|
|
src: "{{ specs_src }}"
|
|
loop_control:
|
|
loop_var: zj_output
|
|
|
|
- name: Find all generated specs
|
|
ansible.builtin.find:
|
|
paths: "{{ specs_src }}"
|
|
patterns: "*.yaml"
|
|
recurse: true
|
|
# Search for anything and filter later
|
|
file_type: "any"
|
|
register: openapi_specs
|
|
|
|
- name: Return artifact to Zuul
|
|
zuul_return:
|
|
data:
|
|
zuul:
|
|
artifacts:
|
|
- name: "{{ openapi_service }} OpenAPI spec {{ zj_item.path | basename | splitext | first }}"
|
|
url: "artifacts/openapi_specs{{ zj_item.path | regex_replace(specs_src) }}"
|
|
metadata:
|
|
type: openapi
|
|
service_type: "{{ openapi_service }}"
|
|
version: "{{ zj_item.path | basename | splitext | first }}"
|
|
loop: "{{ openapi_specs.files }}"
|
|
loop_control:
|
|
loop_var: zj_item
|
|
when:
|
|
# only interested in files/links
|
|
- "not zj_item.isdir"
|