zuul-jobs/roles/git-prepare-nodecache/tasks/main.yaml
2020-10-31 07:34:03 +00:00

52 lines
1.5 KiB
YAML

- name: Create git parent dirs
file:
path: "{{ git_cache_root }}/{{ zj_project.canonical_name | dirname }}"
state: directory
mode: 0775
with_items: "{{ zuul.projects.values() | list }}"
loop_control:
loop_var: zj_project
- name: Copy git repos to {{ git_cache_root }}
command: cp -r "{{ ansible_user_dir }}/{{ zj_project.src_dir }}/.git"
"{{ git_cache_root }}/{{ zj_project.canonical_name }}"
with_items: "{{ zuul.projects.values() | list }}"
loop_control:
loop_var: zj_project
- name: Mark repos as bare
command: git config --bool core.bare true
args:
chdir: "{{ git_cache_root }}/{{ zj_project.canonical_name }}"
with_items: "{{ zuul.projects.values() | list }}"
loop_control:
loop_var: zj_project
# We don't want git module foo, just set a config value.
tags:
- skip_ansible_lint
- name: Run git garbage collection
command: git gc --prune=now --aggressive
args:
chdir: "{{ git_cache_root }}/{{ zj_project.canonical_name }}"
with_items: "{{ zuul.projects.values() | list }}"
loop_control:
loop_var: zj_project
# 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