- 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