tripleo-quickstart-extras/roles/nodepool-setup/tasks/patch_repos.yml

40 lines
1.2 KiB
YAML

---
- name: Check if repo should be changed
set_fact:
proj: "{{ repo_item.replace('.git', '').split('/')[-2:]|join('/') }}:"
- name: Clone usually if project has no changes to apply
git:
repo: "{{ repo_item }}"
dest: "/opt/stack/{{ repo_item.replace('.git', '').split('/')[-1] }}"
version: master
when: proj not in zuul_changes
- name: Clone project and apply changes to it
when: proj in zuul_changes
block:
- name: Get changes
set_fact:
zuul_changes_list: "{{ zuul_changes.split('^')|list }}"
- name: Clone repo and apply change
shell: |
export dir={{ item.split(':')[0].split('/')[1] }}
export refs={{ item.split(':')[2] }}
if [[ ! -e $dir ]]; then
git clone {{ repo_item }}
cd $dir
git fetch {{ repo_item }} $refs && git checkout FETCH_HEAD
else
cd $dir
git fetch {{ repo_item }} $refs && git cherry-pick --allow-empty FETCH_HEAD
fi
git rebase {{ stable_release|default('master', true) }}
with_items: "{{ zuul_changes_list }}"
when:
- proj in item
- stable_release|default('master', true) in item
args:
chdir: /opt/stack