mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.6 KiB
YAML
78 lines
2.6 KiB
YAML
- name: SETUP | clean out the remote_tmp_dir
|
|
file:
|
|
path: "{{ remote_tmp_dir }}"
|
|
state: absent
|
|
|
|
- name: SETUP | create clean remote_tmp_dir
|
|
file:
|
|
path: "{{ remote_tmp_dir }}"
|
|
state: directory
|
|
|
|
- name: SETUP | install git
|
|
package:
|
|
name: '{{ item }}'
|
|
when: ansible_distribution not in ["MacOSX", "Alpine"]
|
|
notify:
|
|
- cleanup
|
|
with_items: "{{ git_required_packages[ansible_os_family | default('default') ] | default(git_required_packages.default) }}"
|
|
|
|
- name: SETUP | verify that git is installed so this test can continue
|
|
shell: which git
|
|
|
|
- name: SETUP | get git version, only newer than {{git_version_supporting_depth}} has fixed git depth
|
|
shell: git --version | grep 'git version' | sed 's/git version //'
|
|
register: git_version
|
|
|
|
- name: SETUP | get gpg version
|
|
shell: gpg --version 2>1 | head -1 | sed -e 's/gpg (GnuPG) //'
|
|
register: gpg_version
|
|
|
|
- name: SETUP | set git global user.email if not already set
|
|
shell: git config --global user.email 'noreply@example.com'
|
|
|
|
- name: SETUP | set git global user.name if not already set
|
|
shell: git config --global user.name 'Ansible Test Runner'
|
|
|
|
- name: SETUP | set git global init.defaultBranch
|
|
shell: >-
|
|
git config --global init.defaultBranch '{{ git_default_branch }}'
|
|
|
|
- name: SETUP | set git global init.templateDir
|
|
# NOTE: This custom Git repository template emulates the `init.defaultBranch`
|
|
# NOTE: setting on Git versions below 2.28.
|
|
# NOTE: Ref: https://superuser.com/a/1559582.
|
|
# NOTE: Other workarounds mentioned there, like invoking
|
|
# NOTE: `git symbolic-ref HEAD refs/heads/main` after each `git init` turned
|
|
# NOTE: out to have mysterious side effects that break the tests in surprising
|
|
# NOTE: ways.
|
|
shell: |
|
|
set -eEu
|
|
|
|
git config --global \
|
|
init.templateDir '{{ remote_tmp_dir }}/git-templates/git.git'
|
|
|
|
mkdir -pv '{{ remote_tmp_dir }}/git-templates'
|
|
set +e
|
|
GIT_TEMPLATES_DIR=$(\
|
|
2>/dev/null \
|
|
ls -1d \
|
|
'/Library/Developer/CommandLineTools/usr/share/git-core/templates' \
|
|
'/usr/local/share/git-core/templates' \
|
|
'/usr/share/git-core/templates' \
|
|
)
|
|
set -e
|
|
>&2 echo "Found Git's default templates directory: ${GIT_TEMPLATES_DIR}"
|
|
cp -r "${GIT_TEMPLATES_DIR}" '{{ remote_tmp_dir }}/git-templates/git.git'
|
|
|
|
echo 'ref: refs/heads/{{ git_default_branch }}' \
|
|
> '{{ remote_tmp_dir }}/git-templates/git.git/HEAD'
|
|
|
|
- name: SETUP | create repo_dir
|
|
file:
|
|
path: "{{ repo_dir }}"
|
|
state: directory
|
|
|
|
- name: SETUP | show git version
|
|
debug:
|
|
msg: "Running test with git {{ git_version.stdout }}"
|