# 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 }}'