
Use zuul_workspace_root as the destination folder for preparing and mirroring the workspace, which points to ansible_user_dir by default. (As is currently the case). The override of this variable can be useful when using a static node with multiple slots to use a separate workspace for each slot. Change-Id: I2014b9c876907cfc17a0ec7fa2b6d4e67cb2331c
33 lines
1.4 KiB
YAML
33 lines
1.4 KiB
YAML
# Do all the steps in a single shell script. This reduces the number of times
|
|
# ansible must loop over the list of projects which reduces the amount of
|
|
# task startup time we incur.
|
|
- name: Set initial repo states in workspace
|
|
shell: |
|
|
set -ex
|
|
if [ -d "{{ cached_repos_root }}/{{ zj_project.canonical_name }}" ] ; then
|
|
# We do a bare clone here first so that we skip creating a working
|
|
# copy that will be overwritten later anyway.
|
|
git clone --bare {{ cached_repos_root }}/{{ zj_project.canonical_name }} {{ zuul_workspace_root }}/{{ zj_project.src_dir }}/.git
|
|
else
|
|
git init {{ zuul_workspace_root }}/{{ zj_project.src_dir }}
|
|
fi
|
|
cd {{ zuul_workspace_root }}/{{ zj_project.src_dir }}
|
|
git config --local --bool core.bare false
|
|
git remote -v | grep origin && git remote rm origin || true
|
|
git remote add origin file:///dev/null
|
|
args:
|
|
creates: "{{ zuul_workspace_root }}/{{ zj_project.src_dir }}"
|
|
with_items: "{{ zuul.projects.values() | list }}"
|
|
loop_control:
|
|
loop_var: zj_project
|
|
# We're using git in a shell script because it is faster and the module
|
|
# doesn't support features we need.
|
|
tags:
|
|
- skip_ansible_lint
|
|
|
|
# TODO(tobiash): we might want to deprecate the role mirror-workspace-git-repos
|
|
# and move it here.
|
|
- name: Synchronize repos
|
|
import_role:
|
|
name: test-mirror-workspace-git-repos
|