| - name: Find all source repos used by this job |
| find: |
| paths: |
| - src/git.openstack.org/openstack |
| - src/git.openstack.org/openstack-dev |
| - src/git.openstack.org/openstack-infra |
| file_type: directory |
| register: found_repos |
| |
| - name: Copy Zuul repos into devstack working directory |
| command: rsync -a {{ item.path }} {{ devstack_base_dir }} |
| 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 }}' |
| state: directory |
| recurse: true |
| owner: stack |
| group: stack |
| become: yes |