Re-sync test-mirror-workspace-git-repos
This brings it in-line with mirror-workspace-git-repos in preparation for further changes. Change-Id: Ia7d07f84c5bf48dc11e195738edbce7acece8fee
This commit is contained in:
parent
904ca53b86
commit
2cc836a320
@ -4,3 +4,11 @@ This role uses git operations (unlike :zuul:role:`prepare-workspace`
|
|||||||
which uses rsync) to mirror the local prepared git repos to the remote
|
which uses rsync) to mirror the local prepared git repos to the remote
|
||||||
nodes. This may be useful if the remote node already has a copy of
|
nodes. This may be useful if the remote node already has a copy of
|
||||||
some or all of the git repos.
|
some or all of the git repos.
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: mirror_workspace_quiet
|
||||||
|
:default: false
|
||||||
|
|
||||||
|
If `true` git operations will be silenced and won't print every
|
||||||
|
changed reference.
|
||||||
|
1
roles/test-mirror-workspace-git-repos/defaults/main.yaml
Normal file
1
roles/test-mirror-workspace-git-repos/defaults/main.yaml
Normal file
@ -0,0 +1 @@
|
|||||||
|
mirror_workspace_quiet: false
|
@ -9,10 +9,19 @@
|
|||||||
loop_var: zj_project
|
loop_var: zj_project
|
||||||
|
|
||||||
- name: Synchronize src repos to workspace directory
|
- name: Synchronize src repos to workspace directory
|
||||||
command: "git push --mirror git+ssh://{{ ansible_user }}@{{ ansible_host | ipwrap }}:{{ ansible_port }}/{{ ansible_user_dir }}/{{ zj_project.value.src_dir }}"
|
command: |-
|
||||||
|
{% if ansible_connection == "kubectl" %}
|
||||||
|
git push {% if mirror_workspace_quiet %}--quiet{% endif %} --mirror "ext::kubectl --context {{ zuul.resources[inventory_hostname].context }} -n {{ zuul.resources[inventory_hostname].namespace }} exec -i {{ zuul.resources[inventory_hostname].pod }} -- %S {{ ansible_user_dir }}/{{ zj_project.value.src_dir }}"
|
||||||
|
{% else %}
|
||||||
|
git push {% if mirror_workspace_quiet %}--quiet{% endif %} --mirror git+ssh://{{ ansible_user }}@{{ ansible_host | ipwrap }}:{{ ansible_port }}/{{ ansible_user_dir }}/{{ zj_project.value.src_dir }}
|
||||||
|
{% endif %}
|
||||||
args:
|
args:
|
||||||
chdir: "{{ zuul.executor.work_root }}/{{ zj_project.value.src_dir }}"
|
chdir: "{{ zuul.executor.work_root }}/{{ zj_project.value.src_dir }}"
|
||||||
|
environment:
|
||||||
|
GIT_ALLOW_PROTOCOL: ext:ssh
|
||||||
with_dict: "{{ zuul.projects }}"
|
with_dict: "{{ zuul.projects }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: zj_project
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
# We occasionally see git pushes in the middle of this loop fail then
|
# We occasionally see git pushes in the middle of this loop fail then
|
||||||
# subsequent pushes for other repos succeed. The entire loop ends up
|
# subsequent pushes for other repos succeed. The entire loop ends up
|
||||||
@ -25,18 +34,20 @@
|
|||||||
# but push is not supported by ansible git module.
|
# but push is not supported by ansible git module.
|
||||||
tags:
|
tags:
|
||||||
- skip_ansible_lint
|
- skip_ansible_lint
|
||||||
loop_control:
|
|
||||||
loop_var: zj_project
|
|
||||||
|
|
||||||
# Do this as a multi-line shell so that we can do the loop once
|
# Do this as a multi-line shell so that we can do the loop once
|
||||||
- name: Update remote repository state correctly
|
- name: Update remote repository state correctly
|
||||||
shell: |
|
shell: |
|
||||||
|
set -eu
|
||||||
|
|
||||||
# Reset is needed because we pushed to a non-bare repo
|
# Reset is needed because we pushed to a non-bare repo
|
||||||
git reset --hard
|
git reset --hard
|
||||||
|
# Clean is needed because we pushed to a non-bare repo
|
||||||
|
git clean -xdf
|
||||||
# Undo the config setting we did above
|
# Undo the config setting we did above
|
||||||
git config --local --unset receive.denyCurrentBranch
|
git config --local --unset receive.denyCurrentBranch
|
||||||
# checkout the branch matching the branch set up by the executor
|
# checkout the branch matching the branch set up by the executor
|
||||||
git checkout {{ zj_project.value.checkout }}
|
git checkout {% if mirror_workspace_quiet %}--quiet{% endif %} {{ zj_project.value.checkout }}
|
||||||
# put out a status line with the current HEAD
|
# put out a status line with the current HEAD
|
||||||
echo "{{ zj_project.value.canonical_name }} checked out to:"
|
echo "{{ zj_project.value.canonical_name }} checked out to:"
|
||||||
git log --pretty=oneline -1
|
git log --pretty=oneline -1
|
||||||
|
Loading…
Reference in New Issue
Block a user