Merge "Make prepare-workspace-git fail faster."
This commit is contained in:
commit
2220a7da8d
@ -52,32 +52,11 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: zj_project
|
loop_var: zj_project
|
||||||
|
|
||||||
- name: Synchronize src repos to workspace directory
|
- name: Include tasks to synchronize src repos to workspace directory
|
||||||
command: |-
|
include_tasks: sync-project.yaml
|
||||||
{% 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 {{ zuul_workspace_root }}/{{ zj_project.value.src_dir }}"
|
|
||||||
{% else %}
|
|
||||||
git push {% if mirror_workspace_quiet %}--quiet{% endif %} --mirror git+ssh://{{ ansible_user }}@{{ ansible_host | ipwrap }}:{{ ansible_port }}/{{ zuul_workspace_root }}/{{ zj_project.value.src_dir }}
|
|
||||||
{% endif %}
|
|
||||||
args:
|
|
||||||
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_control:
|
||||||
loop_var: zj_project
|
loop_var: zj_project
|
||||||
delegate_to: localhost
|
|
||||||
# We occasionally see git pushes in the middle of this loop fail then
|
|
||||||
# subsequent pushes for other repos succeed. The entire loop ends up
|
|
||||||
# failing because one of the pushes failed. Mitigate this by retrying
|
|
||||||
# on failure.
|
|
||||||
register: git_push
|
|
||||||
until: git_push is success
|
|
||||||
retries: 3
|
|
||||||
# ANSIBLE0006: Skip linting since it triggers on the "git" command,
|
|
||||||
# but push is not supported by ansible git module.
|
|
||||||
tags:
|
|
||||||
- skip_ansible_lint
|
|
||||||
|
|
||||||
# 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
|
||||||
|
23
roles/prepare-workspace-git/tasks/sync-project.yaml
Normal file
23
roles/prepare-workspace-git/tasks/sync-project.yaml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
- name: "Synchronize {{ zj_project.value.canonical_name }}"
|
||||||
|
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 {{ zuul_workspace_root }}/{{ zj_project.value.src_dir }}"
|
||||||
|
{% else %}
|
||||||
|
git push {% if mirror_workspace_quiet %}--quiet{% endif %} --mirror git+ssh://{{ ansible_user }}@{{ ansible_host | ipwrap }}:{{ ansible_port }}/{{ zuul_workspace_root }}/{{ zj_project.value.src_dir }}
|
||||||
|
{% endif %}
|
||||||
|
args:
|
||||||
|
chdir: "{{ zuul.executor.work_root }}/{{ zj_project.value.src_dir }}"
|
||||||
|
environment:
|
||||||
|
GIT_ALLOW_PROTOCOL: ext:ssh
|
||||||
|
delegate_to: localhost
|
||||||
|
# We occasionally see git pushes in the middle of this loop fail then
|
||||||
|
# subsequent pushes for other repos succeed. The entire loop ends up
|
||||||
|
# failing because one of the pushes failed. Mitigate this by retrying
|
||||||
|
# on failure.
|
||||||
|
register: git_push
|
||||||
|
until: git_push is success
|
||||||
|
retries: 3
|
||||||
|
# ANSIBLE0006: Skip linting since it triggers on the "git" command,
|
||||||
|
# but push is not supported by ansible git module.
|
||||||
|
tags:
|
||||||
|
- skip_ansible_lint
|
Loading…
Reference in New Issue
Block a user