From 570555cf2d464078190240df724ca4f148c72b48 Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Wed, 4 Mar 2026 00:47:09 +0100 Subject: Refactor language roles to use mise and install multiple version support --- roles/rust/defaults/main.yml | 3 ++- roles/rust/meta/argument_specs.yml | 13 ++++++------- roles/rust/meta/main.yml | 5 ++--- roles/rust/tasks/main.yml | 13 +++++++------ 4 files changed, 17 insertions(+), 17 deletions(-) (limited to 'roles/rust') diff --git a/roles/rust/defaults/main.yml b/roles/rust/defaults/main.yml index a23ee6dc..7cb39ef2 100644 --- a/roles/rust/defaults/main.yml +++ b/roles/rust/defaults/main.yml @@ -1,3 +1,4 @@ --- -rust_toolchain: "stable" +rust_versions: + - "stable" rust_components: [] diff --git a/roles/rust/meta/argument_specs.yml b/roles/rust/meta/argument_specs.yml index 93ebc36e..612812b6 100644 --- a/roles/rust/meta/argument_specs.yml +++ b/roles/rust/meta/argument_specs.yml @@ -1,15 +1,14 @@ --- argument_specs: main: - short_description: "Install Rust via rustup on Linux distributions" - description: "Install Rust via rustup on Linux distributions" options: - rust_toolchain: - type: "str" - description: "The Rust toolchain to install (stable, beta, nightly)" - default: "stable" + rust_versions: + type: "list" + description: "Rust versions to install via mise (e.g. 'stable', 'nightly')" + elements: "str" + default: ["stable"] rust_components: type: "list" - description: "Additional rustup components to install" + description: "Rust components to install via rustup (applied to the active toolchain)" elements: "str" default: [] diff --git a/roles/rust/meta/main.yml b/roles/rust/meta/main.yml index 8afa47c1..af2fe6fa 100644 --- a/roles/rust/meta/main.yml +++ b/roles/rust/meta/main.yml @@ -1,10 +1,9 @@ --- dependencies: - - role: "bash" - - role: "curl" + - role: "mise" galaxy_info: author: "a14m" - description: "Install Rust via rustup on Linux distributions" + description: "Install Rust (versions) via mise on Linux distributions" license: "MIT" min_ansible_version: "2.18" platforms: diff --git a/roles/rust/tasks/main.yml b/roles/rust/tasks/main.yml index 4c34eb81..85ebdd95 100644 --- a/roles/rust/tasks/main.yml +++ b/roles/rust/tasks/main.yml @@ -1,16 +1,17 @@ --- -- name: "Check installed rust version" +- name: "Check installed rust versions" ansible.builtin.command: - cmd: "mise current rust" - register: rust_current_version + cmd: "mise ls rust" + register: rust_installed_versions changed_when: false failed_when: false -- name: "Install rust {{ rust_toolchain }}" +- name: "Install rust {{ item }}" ansible.builtin.command: - cmd: "mise use --global rust@{{ rust_toolchain }}" + cmd: "mise use --global rust@{{ item }}" changed_when: true - when: rust_toolchain not in rust_current_version.stdout + when: item not in rust_installed_versions.stdout + loop: "{{ rust_versions }}" - name: "Install rust components" ansible.builtin.command: -- cgit v1.2.3