File: setup.yml

package info (click to toggle)
ansible-core 2.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 32,752 kB
  • sloc: python: 181,000; cs: 4,929; sh: 4,611; xml: 34; makefile: 21
file content (77 lines) | stat: -rw-r--r-- 2,621 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
- 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 }}"