d7921b4d5b
Make git module support --separate-git-dir option. When git version is higher than 1.7.5, use built-in --separate-git-dir option during the clone. When lower, adjust the location of git dir manually after clone to achieve the same effect.
132 lines
3.3 KiB
YAML
132 lines
3.3 KiB
YAML
# test code for repositories with separate git dir updating
|
|
# see https://github.com/ansible/ansible/pull/38016
|
|
# see https://github.com/ansible/ansible/issues/30034
|
|
|
|
- name: SEPARATE-GIT-DIR | clear checkout_dir
|
|
file:
|
|
state: absent
|
|
path: '{{ checkout_dir }}'
|
|
|
|
- name: SEPARATE-GIT-DIR | make a pre-exist repo dir
|
|
file:
|
|
state: directory
|
|
path: '{{ separate_git_dir }}'
|
|
|
|
- name: SEPARATE-GIT-DIR | clone with a separate git dir
|
|
git:
|
|
repo: '{{ repo_format1 }}'
|
|
dest: '{{ checkout_dir }}'
|
|
separate_git_dir: '{{ separate_git_dir }}'
|
|
ignore_errors: yes
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | the clone will fail due to pre-exist dir
|
|
assert:
|
|
that: 'result is failed'
|
|
|
|
- name: SEPARATE-GIT-DIR | delete pre-exist dir
|
|
file:
|
|
state: absent
|
|
path: '{{ separate_git_dir }}'
|
|
|
|
- name: SEPARATE-GIT-DIR | clone again with a separate git dir
|
|
git:
|
|
repo: '{{ repo_format1 }}'
|
|
dest: '{{ checkout_dir }}'
|
|
separate_git_dir: '{{ separate_git_dir }}'
|
|
|
|
- name: SEPARATE-GIT-DIR | check the stat of git dir
|
|
stat:
|
|
path: '{{ separate_git_dir }}'
|
|
register: stat_result
|
|
|
|
- name: SEPARATE-GIT-DIR | the git dir should exist
|
|
assert:
|
|
that: 'stat_result.stat.exists == True'
|
|
|
|
- name: SEPARATE-GIT-DIR | update repo the usual way
|
|
git:
|
|
repo: '{{ repo_format1 }}'
|
|
dest: '{{ checkout_dir }}'
|
|
separate_git_dir: '{{ separate_git_dir }}'
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | update should not fail
|
|
assert:
|
|
that:
|
|
- result is not failed
|
|
|
|
- name: SEPARATE-GIT-DIR | move the git dir to new place
|
|
git:
|
|
repo: '{{ repo_format1 }}'
|
|
dest: '{{ checkout_dir }}'
|
|
separate_git_dir: '{{ separate_git_dir }}_new'
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | the movement should not failed
|
|
assert:
|
|
that: 'result is not failed'
|
|
|
|
- name: SEPARATE-GIT-DIR | check the stat of new git dir
|
|
stat:
|
|
path: '{{ separate_git_dir }}_new'
|
|
register: stat_result
|
|
|
|
- name: SEPARATE-GIT-DIR | the new git dir should exist
|
|
assert:
|
|
that: 'stat_result.stat.exists == True'
|
|
|
|
- name: SEPARATE-GIT-DIR | test the update
|
|
git:
|
|
repo: '{{ repo_format1 }}'
|
|
dest: '{{ checkout_dir }}'
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | the update should not failed
|
|
assert:
|
|
that:
|
|
- result is not failed
|
|
|
|
- name: SEPARATE-GIT-DIR | set git dir to non-existent dir
|
|
shell: "echo gitdir: /dev/null/non-existent-dir > .git"
|
|
args:
|
|
chdir: "{{ checkout_dir }}"
|
|
|
|
- name: SEPARATE-GIT-DIR | update repo the usual way
|
|
git:
|
|
repo: "{{ repo_format1 }}"
|
|
dest: "{{ checkout_dir }}"
|
|
ignore_errors: yes
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | check update has failed
|
|
assert:
|
|
that:
|
|
- result is failed
|
|
|
|
- name: SEPARATE-GIT-DIR | set .git file to bad format
|
|
shell: "echo some text gitdir: {{ checkout_dir }} > .git"
|
|
args:
|
|
chdir: "{{ checkout_dir }}"
|
|
|
|
- name: SEPARATE-GIT-DIR | update repo the usual way
|
|
git:
|
|
repo: "{{ repo_format1 }}"
|
|
dest: "{{ checkout_dir }}"
|
|
ignore_errors: yes
|
|
register: result
|
|
|
|
- name: SEPARATE-GIT-DIR | check update has failed
|
|
assert:
|
|
that:
|
|
- result is failed
|
|
|
|
- name: SEPARATE-GIT-DIR | clear separate git dir
|
|
file:
|
|
state: absent
|
|
path: "{{ separate_git_dir }}_new"
|
|
|
|
- name: SEPARATE-GIT-DIR | clear checkout_dir
|
|
file:
|
|
state: absent
|
|
path: '{{ checkout_dir }}'
|