From d736c8ab19e5877af57a50b47ce46a62bb9674a0 Mon Sep 17 00:00:00 2001 From: John Trowbridge Date: Tue, 24 Jan 2017 19:40:42 -0500 Subject: [PATCH] [build-test-packages] combine all methods of providing changes The current implementation of build-test-packages allows for precisely one method of providing what changes to build. Either passing a artg_change_list dict directly via variable, reading GERRIT vars from the env, or reading ZUUL vars from the env. This patch makes it possible for multiple of these methods to be used without stomping on eachother. It is needed to be able to run the gate which specifically exercises this role, but may be useful in other scenarios as well. Change-Id: Ib2290411865f9bb1a2804af64e85541530ae2e97 --- .../library/jenkins_deps.py | 2 +- .../build-test-packages/library/zuul_deps.py | 2 +- roles/build-test-packages/tasks/main.yml | 20 ++++++++++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/roles/build-test-packages/library/jenkins_deps.py b/roles/build-test-packages/library/jenkins_deps.py index 0c88d94dc..f0a4ff68b 100755 --- a/roles/build-test-packages/library/jenkins_deps.py +++ b/roles/build-test-packages/library/jenkins_deps.py @@ -185,7 +185,7 @@ def resolve_dep(host, change_id, branch, revision): 'msg': ', '.join(output_msg)} else: return {'changed': True, - 'ansible_facts': {'artg_change_list': deps}, + 'ansible_facts': {'jenkins_change_list': deps}, 'msg': ', '.join(output_msg)} diff --git a/roles/build-test-packages/library/zuul_deps.py b/roles/build-test-packages/library/zuul_deps.py index de089b190..401d24162 100755 --- a/roles/build-test-packages/library/zuul_deps.py +++ b/roles/build-test-packages/library/zuul_deps.py @@ -39,7 +39,7 @@ def process(host, changes): "branch": params[1], "refspec": params[2]}) return {'changed': True, - 'ansible_facts': {'artg_change_list': output}} + 'ansible_facts': {'zuul_change_list': output}} def main(): diff --git a/roles/build-test-packages/tasks/main.yml b/roles/build-test-packages/tasks/main.yml index cd7aa744c..8b3fa02aa 100644 --- a/roles/build-test-packages/tasks/main.yml +++ b/roles/build-test-packages/tasks/main.yml @@ -67,23 +67,37 @@ args: chdir: '{{ ansible_user_dir }}/DLRN' +- name: get env variables for changes and default change list + set_fact: + gerrit_host: "{{ lookup('env', 'GERRIT_HOST') }}" + zuul_changes: "{{ lookup('env', 'ZUUL_CHANGES') }}" + artg_change_list: "{{ artg_change_list|default([]) }}" + - name: Parse Jenkins changes jenkins_deps: host: "{{ lookup('env', 'GERRIT_HOST') }}" change_id: "{{ lookup('env', 'GERRIT_CHANGE_ID') }}" branch: "{{ lookup('env', 'GERRIT_BRANCH') }}" patchset_rev: "{{ lookup('env', 'GERRIT_PATCHSET_REVISION') }}" - when: artg_change_list is not defined and "{{ lookup('env', 'GERRIT_HOST') }}" != "" + when: gerrit_host != "" + +- name: Add Jenkins changes to the change list + set_fact: + artg_change_list: "{{ artg_change_list|union(jenkins_change_list|default([])) }}" - name: Parse Zuul changes zuul_deps: host: "{{ lookup('env', 'ZUUL_HOST')|default('review.openstack.org', true) }}" changes: "{{ lookup('env', 'ZUUL_CHANGES') }}" - when: artg_change_list is not defined and "{{ lookup('env', 'ZUUL_CHANGES') }}" != "" + when: zuul_changes != "" + +- name: Add Zuul changes to the change list + set_fact: + artg_change_list: "{{ artg_change_list|union(zuul_change_list|default([])) }}" - name: Clone and build the specific DLRN projects include: dlrn-build.yml artg_change={{ item }} - with_items: '{{ artg_change_list|default([]) }}' + with_items: '{{ artg_change_list }}' when: item.project not in artg_skipped_projects - block: