[PATCH 4/5] install-go-deps: Add generic Go toolchain role
Luis Chamberlain <[email protected]> Fri, 17 Oct 2025 19:32:16 -0700
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Message-ID | <[email protected]> |
Add reusable install-go-deps role that provides consistent Go toolchain installation across all distributions: - Debian/Ubuntu: golang-go - Fedora/RHEL: golang - SUSE: go This modular role can be included by any workflow or role needing Go support, following kdevops patterns for dependency management. Similar to install-rust-deps, this provides a generic building block for workflows that need Go tooling. Generated-by: Claude AI Signed-off-by: Luis Chamberlain <[email protected]> --- .../tasks/install-deps/debian/main.yml | 10 +++++++++ .../tasks/install-deps/fedora/main.yml | 9 ++++++++ .../tasks/install-deps/main.yml | 21 +++++++++++++++++++ .../tasks/install-deps/redhat/main.yml | 9 ++++++++ .../tasks/install-deps/suse/main.yml | 9 ++++++++ .../roles/install-go-deps/tasks/main.yml | 15 +++++++++++++ 6 files changed, 73 insertions(+) create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/debian/main.yml create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/fedora/main.yml create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/main.yml create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/redhat/main.yml create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/suse/main.yml create mode 100644 playbooks/roles/install-go-deps/tasks/main.yml diff --git a/playbooks/roles/install-go-deps/tasks/install-deps/debian/main.yml b/playbooks/roles/install-go-deps/tasks/install-deps/debian/main.yml new file mode 100644 index 00000000..79d21564 --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/install-deps/debian/main.yml @@ -0,0 +1,10 @@ +--- +- name: Install Go build dependencies + become: true + become_method: sudo + ansible.builtin.apt: + name: + - golang-go + state: present + update_cache: false + tags: ["go", "deps"] diff --git a/playbooks/roles/install-go-deps/tasks/install-deps/fedora/main.yml b/playbooks/roles/install-go-deps/tasks/install-deps/fedora/main.yml new file mode 100644 index 00000000..6926ce2f --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/install-deps/fedora/main.yml @@ -0,0 +1,9 @@ +--- +- name: Install Go build dependencies + become: true + become_method: sudo + ansible.builtin.dnf: + name: + - golang + state: present + tags: ["go", "deps"] diff --git a/playbooks/roles/install-go-deps/tasks/install-deps/main.yml b/playbooks/roles/install-go-deps/tasks/install-deps/main.yml new file mode 100644 index 00000000..23cda58e --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/install-deps/main.yml @@ -0,0 +1,21 @@ +--- +- name: Import optional distribution specific variables + ansible.builtin.include_vars: "{{ item }}" + ignore_errors: true + with_first_found: + - files: + - "{{ ansible_facts['os_family'] | lower }}.yml" + skip: true + tags: vars + +- name: Distribution specific setup + ansible.builtin.import_tasks: debian/main.yml + when: ansible_facts['os_family']|lower == 'debian' +- ansible.builtin.import_tasks: suse/main.yml + when: ansible_facts['os_family']|lower == 'suse' +- ansible.builtin.import_tasks: redhat/main.yml + when: + - ansible_facts['os_family']|lower == 'redhat' + - ansible_facts['distribution']|lower != "fedora" +- ansible.builtin.import_tasks: fedora/main.yml + when: ansible_facts['distribution']|lower == "fedora" diff --git a/playbooks/roles/install-go-deps/tasks/install-deps/redhat/main.yml b/playbooks/roles/install-go-deps/tasks/install-deps/redhat/main.yml new file mode 100644 index 00000000..6926ce2f --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/install-deps/redhat/main.yml @@ -0,0 +1,9 @@ +--- +- name: Install Go build dependencies + become: true + become_method: sudo + ansible.builtin.dnf: + name: + - golang + state: present + tags: ["go", "deps"] diff --git a/playbooks/roles/install-go-deps/tasks/install-deps/suse/main.yml b/playbooks/roles/install-go-deps/tasks/install-deps/suse/main.yml new file mode 100644 index 00000000..3898b572 --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/install-deps/suse/main.yml @@ -0,0 +1,9 @@ +--- +- name: Install Go build dependencies + become: true + become_method: sudo + community.general.zypper: + name: + - go + state: present + tags: ["go", "deps"] diff --git a/playbooks/roles/install-go-deps/tasks/main.yml b/playbooks/roles/install-go-deps/tasks/main.yml new file mode 100644 index 00000000..b248ccf8 --- /dev/null +++ b/playbooks/roles/install-go-deps/tasks/main.yml @@ -0,0 +1,15 @@ +--- +- name: Import optional extra_args file + ansible.builtin.include_vars: "{{ item }}" + ignore_errors: true + with_first_found: + - files: + - "../extra_vars.yml" + - "../extra_vars.yaml" + - "../extra_vars.json" + skip: true + tags: vars + +# Install Go build dependencies +- name: Install Go build dependencies + ansible.builtin.include_tasks: install-deps/main.yml -- 2.51.0