1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Test the git changes for the git module's recursive flag

This commit is contained in:
Toshio Kuratomi 2014-10-28 17:58:25 -04:00
parent cb53b0f94a
commit 82e8d677d9
2 changed files with 144 additions and 1 deletions

@ -1 +1 @@
Subproject commit 9fe5c2af2dcfb125398475e4ed0b740e71d70709
Subproject commit 63e81cfc2e0c3c07245342cd41a0ba147eac55be

View file

@ -22,6 +22,11 @@
repo_format1: 'https://github.com/jimi-c/test_role'
repo_format2: 'git@github.com:jimi-c/test_role.git'
repo_format3: 'ssh://git@github.com/jimi-c/test_role.git'
repo_submodules: 'https://github.com/abadger/test_submodules.git'
repo_submodules_newer: 'https://github.com/abadger/test_submodules_newer.git'
repo_submodule1: 'https://github.com/abadger/test_submodules_subm1.git'
repo_submodule1_newer: 'https://github.com/abadger/test_submodules_subm1_newer.git'
repo_submodule2: 'https://github.com/abadger/test_submodules_subm2.git'
known_host_files:
- "{{ lookup('env','HOME') }}/.ssh/known_hosts"
- '/etc/ssh/ssh_known_hosts'
@ -147,3 +152,141 @@
- assert:
that:
- 'git_result.changed'
#
# Submodule tests
#
# Repository A with submodules defined (repo_submodules)
# .gitmodules file points to Repository I
# Repository B forked from A that has newer commits (repo_submodules_newer)
# .gitmodules file points to Repository II instead of I
# .gitmodules file also points to Repository III
# Repository I for submodule1 (repo_submodule1)
# Has 1 file checked in
# Repository II forked from I that has newer commits (repo_submodule1_newer)
# Has 2 files checked in
# Repository III for a second submodule (repo_submodule2)
# Has 1 file checked in
- name: clear checkout_dir
file: state=absent path={{ checkout_dir }}
- name: Test that clone without recursive does not retrieve submodules
git:
repo: '{{ repo_submodules }}'
dest: '{{ checkout_dir }}'
recursive: no
- command: 'ls -1a {{ checkout_dir }}/submodule1'
register: submodule1
- assert:
that: '{{ submodule1.stdout_lines|length }} == 2'
- name: clear checkout_dir
file: state=absent path={{ checkout_dir }}
- name: Test that clone with recursive retrieves submodules
git:
repo: '{{ repo_submodules }}'
dest: '{{ checkout_dir }}'
recursive: yes
- command: 'ls -1a {{ checkout_dir }}/submodule1'
register: submodule1
- assert:
that: '{{ submodule1.stdout_lines|length }} == 4'
- name: Copy the checkout so we can run several different tests on it
command: 'cp -pr {{ checkout_dir }} {{ checkout_dir }}.bak'
- name: Check that modules will be updated if main repo is not
command: git config --replace-all remote.origin.url {{ repo_submodule1_newer }}
args:
chdir: "{{ checkout_dir }}/submodule1"
- git:
repo: '{{ repo_submodules }}'
dest: '{{ checkout_dir }}'
update: yes
recursive: yes
track_submodules: yes
- command: 'ls -1a {{ checkout_dir }}/submodule1'
register: submodule1
- debug: var=submodule1
- assert:
that: '{{ submodule1.stdout_lines|length }} == 5'
ignore_errors: true
- name: Restore checkout to prior state
file: state=absent path={{ checkout_dir }}
- command: 'cp -pr {{ checkout_dir }}.bak {{ checkout_dir }}'
- name: Test that update without recursive does not change submodules
command: 'git config --replace-all remote.origin.url {{ repo_submodules_newer }}'
args:
chdir: '{{ checkout_dir }}'
- git:
repo: '{{ repo_submodules_newer }}'
dest: '{{ checkout_dir }}'
recursive: no
update: yes
track_submodules: yes
- command: 'ls -1a {{ checkout_dir }}/submodule1'
register: submodule1
- stat:
path: '{{ checkout_dir }}/submodule2'
register: submodule2
- command: 'ls -1a {{ checkout_dir }}/submodule2'
register: submodule2
- assert:
that: '{{ submodule1.stdout_lines|length }} == 4'
- assert:
that: '{{ submodule2.stdout_lines|length }} == 2'
- name: Restore checkout to prior state
file: state=absent path={{ checkout_dir }}
- command: 'cp -pr {{ checkout_dir }}.bak {{ checkout_dir }}'
- name: Test that update with recursive updated existing submodules
command: 'git config --replace-all remote.origin.url {{ repo_submodules_newer }}'
args:
chdir: '{{ checkout_dir }}'
- git:
repo: '{{ repo_submodules_newer }}'
dest: '{{ checkout_dir }}'
update: yes
recursive: yes
track_submodules: yes
- command: 'ls -1a {{ checkout_dir }}/submodule1'
register: submodule1
- assert:
that: '{{ submodule1.stdout_lines|length }} == 5'
- name: Test that update with recursive found new submodules
command: 'ls -1a {{ checkout_dir }}/submodule2'
register: submodule2
- assert:
that: '{{ submodule2.stdout_lines|length }} == 4'