summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-03-04 00:10:52 +0100
committerAhmed Abdelhalim <[email protected]>2026-03-04 00:10:52 +0100
commitf3476b39c2154d7321ce04ebae3134b2b05c1223 (patch)
tree95116ae2f6d14eb5fd72d761f1ad82763efc6d49 /roles
parenta046d41c5a3c7d555d439d897d43c60344d6d3c2 (diff)
Refactor go role to use mise
Diffstat (limited to 'roles')
-rw-r--r--roles/go/defaults/main.yml2
-rw-r--r--roles/go/meta/argument_specs.yml2
-rw-r--r--roles/go/meta/main.yml4
-rw-r--r--roles/go/tasks/main.yml36
4 files changed, 14 insertions, 30 deletions
diff --git a/roles/go/defaults/main.yml b/roles/go/defaults/main.yml
index 16cbca2d..67bb55f2 100644
--- a/roles/go/defaults/main.yml
+++ b/roles/go/defaults/main.yml
@@ -1,2 +1,2 @@
---
-go_version: "1.25.3"
+go_version: "latest"
diff --git a/roles/go/meta/argument_specs.yml b/roles/go/meta/argument_specs.yml
index 9943134f..3e518135 100644
--- a/roles/go/meta/argument_specs.yml
+++ b/roles/go/meta/argument_specs.yml
@@ -7,4 +7,4 @@ argument_specs:
go_version:
type: "str"
description: "Default go version to install"
- default: "1.25.3"
+ default: "latest"
diff --git a/roles/go/meta/main.yml b/roles/go/meta/main.yml
index d96d4509..9990d138 100644
--- a/roles/go/meta/main.yml
+++ b/roles/go/meta/main.yml
@@ -1,9 +1,9 @@
---
dependencies:
- - role: "bash"
+ - role: "mise"
galaxy_info:
author: "a14m"
- description: "Install Go (versions) on Linux distributions"
+ description: "Install Go via mise on Linux distributions"
license: "MIT"
min_ansible_version: "2.18"
platforms:
diff --git a/roles/go/tasks/main.yml b/roles/go/tasks/main.yml
index 93ec8a3a..fbf6e688 100644
--- a/roles/go/tasks/main.yml
+++ b/roles/go/tasks/main.yml
@@ -1,33 +1,18 @@
---
-- name: "Check installed go versions"
+- name: "Check installed go version"
ansible.builtin.command:
- cmd: "/usr/local/go/bin/go version"
- register: go_installed_version
+ cmd: "mise current go"
+ register: go_current_version
changed_when: false
failed_when: false
-- name: "Install go"
- when: go_version not in go_installed_version.stdout
- block:
- - name: "Set go facts"
- ansible.builtin.set_fact:
- go_arch: "{{ 'amd64' if ansible_facts['architecture'] == 'x86_64' else 'arm64' }}"
- go_platform: "{{ ansible_facts['system'] | lower }}"
-
- - name: "Download Go"
- ansible.builtin.get_url:
- url: "https://dl.google.com/go/go{{ go_version }}.{{ go_platform }}-{{ go_arch }}.tar.gz"
- dest: "/tmp/go.tar.gz"
- mode: "0644"
-
- - name: "Unarchive Go"
- become: true
- ansible.builtin.unarchive:
- src: "/tmp/go.tar.gz"
- dest: "/usr/local"
- remote_src: true
+- name: "Install go {{ go_version }}"
+ ansible.builtin.command:
+ cmd: "mise use --global go@{{ go_version }}"
+ changed_when: true
+ when: go_version not in go_current_version.stdout
-- name: "Add Go to shell profile"
+- name: "Add Go bin to shell profile"
ansible.builtin.blockinfile:
path: "{{ ansible_facts['env']['HOME'] }}/.bashrc"
state: "present"
@@ -35,7 +20,6 @@
append_newline: true
marker: "# ==== {mark} ANSIBLE GO CONFIG"
block: |
- if command -v go 1>/dev/null 2>&1; then
- export PATH="$PATH:/usr/local/go/bin"
+ if [ -d "$HOME/go/bin" ]; then
export PATH="$HOME/go/bin:$PATH"
fi