install go only if version is different from desired
This commit is contained in:
@@ -3,54 +3,63 @@
|
|||||||
file: go.yml
|
file: go.yml
|
||||||
name: _go
|
name: _go
|
||||||
|
|
||||||
- name: set go arch
|
- name: check go version
|
||||||
ansible.builtin.set_fact:
|
|
||||||
arch: "{{ _go.archmap[ansible_architecture] }}"
|
|
||||||
|
|
||||||
- name: set go archive filename
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
go_archive: "go{{ _go.version }}.{{ ansible_system | lower }}-{{ arch }}.{{ _go.extmap[ansible_system] }}"
|
|
||||||
tags:
|
|
||||||
- dev
|
|
||||||
- go
|
|
||||||
- debug
|
|
||||||
|
|
||||||
- name: create temp path
|
|
||||||
ansible.builtin.tempfile:
|
|
||||||
state: directory
|
|
||||||
prefix: go_dl.
|
|
||||||
register: d_go_dl_tmp
|
|
||||||
|
|
||||||
- name: download go archive
|
|
||||||
become: true
|
|
||||||
ansible.builtin.get_url:
|
|
||||||
dest: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
|
|
||||||
url: "https://go.dev/dl/{{ go_archive }}"
|
|
||||||
checksum: "{{ _go[_go.version][ansible_system][arch] }}"
|
|
||||||
decompress: false
|
|
||||||
tags:
|
|
||||||
- dev
|
|
||||||
- go
|
|
||||||
|
|
||||||
- name: ensure go install dir exists
|
|
||||||
become: true
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ _go.install_path }}"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: extract go package
|
|
||||||
ansible.builtin.unarchive:
|
|
||||||
dest: "{{ _go.install_path }}"
|
|
||||||
src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
|
|
||||||
remote_src: true
|
|
||||||
when: ansible_system == 'Linux'
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: install go macOS use pkg file
|
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: "installer -pkg {{ d_go_dl_tmp.path }}/{{ go_archive }} -target /"
|
cmd: "go version"
|
||||||
when: ansible_system == 'Darwin'
|
register: r_go_version
|
||||||
become: true
|
ignore_errors: true
|
||||||
tags:
|
|
||||||
- dev
|
- name: install/update go
|
||||||
- go
|
when: "'{{ _go.version }}' not in r_go_version.stdout"
|
||||||
|
block:
|
||||||
|
- name: set go arch
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
arch: "{{ _go.archmap[ansible_architecture] }}"
|
||||||
|
|
||||||
|
- name: set go archive filename
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
go_archive: "go{{ _go.version }}.{{ ansible_system | lower }}-{{ arch }}.{{ _go.extmap[ansible_system] }}"
|
||||||
|
tags:
|
||||||
|
- dev
|
||||||
|
- go
|
||||||
|
- debug
|
||||||
|
|
||||||
|
- name: create temp path
|
||||||
|
ansible.builtin.tempfile:
|
||||||
|
state: directory
|
||||||
|
prefix: go_dl.
|
||||||
|
register: d_go_dl_tmp
|
||||||
|
|
||||||
|
- name: download go archive
|
||||||
|
become: true
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
dest: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
|
||||||
|
url: "https://go.dev/dl/{{ go_archive }}"
|
||||||
|
checksum: "{{ _go[_go.version][ansible_system][arch] }}"
|
||||||
|
decompress: false
|
||||||
|
tags:
|
||||||
|
- dev
|
||||||
|
- go
|
||||||
|
|
||||||
|
- name: ensure go install dir exists
|
||||||
|
become: true
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ _go.install_path }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: extract go package
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
dest: "{{ _go.install_path }}"
|
||||||
|
src: "{{ d_go_dl_tmp.path }}/{{ go_archive }}"
|
||||||
|
remote_src: true
|
||||||
|
when: ansible_system == 'Linux'
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: install go macOS use pkg file
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: "installer -pkg {{ d_go_dl_tmp.path }}/{{ go_archive }} -target /"
|
||||||
|
when: ansible_system == 'Darwin'
|
||||||
|
become: true
|
||||||
|
tags:
|
||||||
|
- dev
|
||||||
|
- go
|
||||||
|
|||||||
Reference in New Issue
Block a user