summaryrefslogtreecommitdiffstats
path: root/roles/rust
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-03-04 00:47:09 +0100
committerAhmed Abdelhalim <[email protected]>2026-03-04 00:49:46 +0100
commit570555cf2d464078190240df724ca4f148c72b48 (patch)
tree44f50edc747c8f84cba74a392df6110981789617 /roles/rust
parentcdbb782ab1aa2c337fcfeca0693ac8e22582d186 (diff)
Refactor language roles to use mise and install multiple version support
Diffstat (limited to 'roles/rust')
-rw-r--r--roles/rust/defaults/main.yml3
-rw-r--r--roles/rust/meta/argument_specs.yml13
-rw-r--r--roles/rust/meta/main.yml5
-rw-r--r--roles/rust/tasks/main.yml13
4 files changed, 17 insertions, 17 deletions
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: