4d2df638d1
We need to set the remote HEAD of the repos after we mirror them. We have been doing that by looking at git status on the local repos to find what their head has been set to. However, we have 'checkout' in zuul.projects now, so we can really just use that. Change-Id: I251da11b7767793278c3f08dcf64aa008e759669 Depends-On: https://review.openstack.org/540948
36 lines
1.3 KiB
YAML
36 lines
1.3 KiB
YAML
- name: Allow pushing to non-bare repo
|
|
git_config:
|
|
name: receive.denyCurrentBranch ignore
|
|
value: ignore
|
|
scope: local
|
|
repo: "{{ ansible_user_dir }}/{{ item.value.src_dir}}"
|
|
with_dict: "{{ zuul.projects }}"
|
|
|
|
- name: Synchronize src repos to workspace directory
|
|
command: "git push --mirror git+ssh://{{ ansible_user }}@{{ ansible_host }}/{{ ansible_user_dir }}/{{ item.value.src_dir}}"
|
|
args:
|
|
chdir: "{{ zuul.executor.work_root }}/{{ item.value.src_dir }}"
|
|
with_dict: "{{ zuul.projects }}"
|
|
delegate_to: localhost
|
|
# 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
|
|
- name: Update remote repository state correctly
|
|
shell: |
|
|
# Reset is needed because we pushed to a non-bare repo
|
|
git reset --hard
|
|
# Undo the config setting we did above
|
|
git config --local --unset receive.denyCurrentBranch
|
|
# checkout the branch matching the branch set up by the executor
|
|
git checkout {{ item.value.checkout }}
|
|
args:
|
|
chdir: "{{ ansible_user_dir }}/{{ item.value.src_dir }}"
|
|
with_dict: "{{ zuul.projects }}"
|
|
# ANSIBLE0006: Skip linting since it triggers on the "git" command,
|
|
# but we prefer the shell above
|
|
tags:
|
|
- skip_ansible_lint
|