63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
---
|
|
- name: Ensure git's dependencies are installed (RedHat).
|
|
package: "name={{ item }} state=installed"
|
|
with_items:
|
|
- gettext-devel
|
|
- expat-devel
|
|
- curl-devel
|
|
- zlib-devel
|
|
- perl-devel
|
|
- openssl-devel
|
|
- subversion-perl
|
|
- make
|
|
- gcc
|
|
when: ansible_os_family == 'RedHat'
|
|
|
|
- name: Ensure git's dependencies are installed (Debian).
|
|
apt: "name={{ item }} state=installed"
|
|
with_items:
|
|
- libcurl4-gnutls-dev
|
|
- libexpat1-dev
|
|
- gettext
|
|
- libssl-dev
|
|
- build-essential
|
|
- gcc
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
- name: Get installed version
|
|
command: >
|
|
git --version
|
|
warn=no
|
|
changed_when: false
|
|
failed_when: false
|
|
check_mode: no
|
|
register: git_installed_version
|
|
|
|
- name: Force git install if the version numbers do not match
|
|
set_fact:
|
|
git_reinstall_from_source: true
|
|
when: 'git_install_from_source_force_update and (git_installed_version|success and (git_installed_version.stdout | regex_replace("^.*?([0-9\.]+)$", "\\1") | version_compare(git_version, operator="!=")))'
|
|
|
|
- name: Download git.
|
|
get_url:
|
|
url: "https://www.kernel.org/pub/software/scm/git/git-{{ git_version }}.tar.gz"
|
|
dest: "{{ workspace }}/git-{{ git_version }}.tar.gz"
|
|
when: git_installed_version|failed or git_reinstall_from_source
|
|
|
|
- name: Expand git archive.
|
|
unarchive:
|
|
src: "{{ workspace }}/git-{{ git_version }}.tar.gz"
|
|
dest: "{{ workspace }}"
|
|
creates: "{{ workspace }}/git-{{ git_version }}/README"
|
|
copy: no
|
|
when: git_installed_version|failed or git_reinstall_from_source
|
|
|
|
- name: Build git.
|
|
command: >
|
|
make prefix={{ git_install_path }} {{ item }}
|
|
chdir={{ workspace }}/git-{{ git_version }}
|
|
with_items:
|
|
- all
|
|
- install
|
|
when: git_installed_version|failed or git_reinstall_from_source
|
|
become: yes
|