Setup branch in setup-devstack-source-dirs
Allow the setup-devstack-source-dirs role to accept a target role to be setup - when available - for the repos. Change-Id: Iebcba0d4be6d9d71b783e10a82c35a406afbd6bf
This commit is contained in:
parent
6f4b7fc99c
commit
147388466d
@ -9,3 +9,8 @@ into it.
|
||||
:default: /opt/stack
|
||||
|
||||
The devstack base directory.
|
||||
|
||||
.. zuul:rolevar:: devstack_branch
|
||||
:default: None
|
||||
|
||||
The target branch to be setup (where available).
|
||||
|
@ -12,6 +12,35 @@
|
||||
with_items: '{{ found_repos.files }}'
|
||||
become: yes
|
||||
|
||||
- name: Setup refspec for repos into devstack working directory
|
||||
shell:
|
||||
# Copied almost "as-is" from devstack-gate setup-workspace function
|
||||
# but removing the dependency on functions.sh
|
||||
# TODO this should be rewritten as a python module.
|
||||
cmd: |
|
||||
cd {{ devstack_base_dir }}/{{ item.path | basename }}
|
||||
base_branch={{ devstack_sources_branch }}
|
||||
if git branch -a | grep "$base_branch" > /dev/null ; then
|
||||
git checkout $base_branch
|
||||
elif [[ "$base_branch" == stable/* ]]; then
|
||||
# Look for an eol tag for the stable branch.
|
||||
eol_tag=${base_branch#stable/}-eol
|
||||
if git tag -l |grep $eol_tag >/dev/null; then
|
||||
git checkout $eol_tag
|
||||
git reset --hard $eol_tag
|
||||
if ! git clean -x -f -d -q ; then
|
||||
sleep 1
|
||||
git clean -x -f -d -q
|
||||
fi
|
||||
fi
|
||||
else
|
||||
git checkout master
|
||||
fi
|
||||
args:
|
||||
executable: /bin/bash
|
||||
with_items: '{{ found_repos.files }}'
|
||||
when: devstack_sources_branch is defined
|
||||
|
||||
- name: Set ownership of repos
|
||||
file:
|
||||
path: '{{ devstack_base_dir }}'
|
||||
|
Loading…
Reference in New Issue
Block a user