f96d170932
The git-prepare-nodecache is a companion role that can be used to create a git cache suitable to be used by the prepare-workspace-git role. Change-Id: I623eb8abc64d956069b4f18d7a1d61383a705ac9
43 lines
1.3 KiB
YAML
43 lines
1.3 KiB
YAML
- name: Create git parent dirs
|
|
file:
|
|
path: "{{ git_cache_root }}/{{ item.canonical_name | dirname }}"
|
|
state: directory
|
|
with_items: "{{ zuul.projects.values() | list }}"
|
|
|
|
- name: Copy git repos to {{ git_cache_root }}
|
|
command: cp -r "{{ ansible_user_dir }}/{{ item.src_dir }}/.git"
|
|
"{{ git_cache_root }}/{{ item.canonical_name }}"
|
|
with_items: "{{ zuul.projects.values() | list }}"
|
|
|
|
- name: Mark repos as bare
|
|
command: git config --bool core.bare true
|
|
args:
|
|
chdir: "{{ git_cache_root }}/{{ item.canonical_name }}"
|
|
with_items: "{{ zuul.projects.values() | list }}"
|
|
# We don't want git module foo, just set a config value.
|
|
tags:
|
|
- skip_ansible_lint
|
|
|
|
- name: Run git garbage collection
|
|
command: git gc
|
|
args:
|
|
chdir: "{{ git_cache_root }}/{{ item.canonical_name }}"
|
|
with_items: "{{ zuul.projects.values() | list }}"
|
|
# The ansible git module doesn't support garbage collection.
|
|
tags:
|
|
- skip_ansible_lint
|
|
|
|
- name: Set git_cache_file variable
|
|
set_fact:
|
|
git_cache_file: "{{ git_cache_root }}/repos.tar.gz"
|
|
|
|
- name: Create repos tarball
|
|
shell: |
|
|
tar -czf "{{ git_cache_file }}" *
|
|
args:
|
|
chdir: "{{ git_cache_root }}"
|
|
# Ansible lint wants we should use the unarchive module but we want the other
|
|
# way round.
|
|
tags:
|
|
- skip_ansible_lint
|