If you do not do anything specific and use the role, it defines rvm1_delete_ruby like this:
|
# Delete a specific version of ruby (ie. ruby-2.1.0) |
|
rvm1_delete_ruby: |
which then can optionally delete one version of Ruby, here:
|
- name: Delete ruby if relevant |
|
command: '{{ rvm1_rvm }} remove {{ rvm1_delete_ruby }}' |
|
register: rvm_delete_command |
|
changed_when: "'#removing' in rvm_delete_command.stdout" |
|
when: rvm1_delete_ruby is defined and rvm1_delete_ruby |
While upgrading from 2.17 to 2.19, I got this error:
Details
TASK [rvm.ruby : Delete ruby if relevant] ***************************************************************************************************************************************************
[ERROR]: Task failed: Conditional result (False) was derived from value of type 'NoneType' at '<unknown>'. Conditionals must have a boolean result.
Task failed.
Origin: /Users/thbar/git/xyz/roles/rvm.ruby/tasks/rubies.yml:61:3
59 with_items: '{{ rvm1_symlink_bundler_binaries }}'
60
61 - name: Delete ruby if relevant
^ column 3
<<< caused by >>>
Conditional result (False) was derived from value of type 'NoneType' at '<unknown>'. Conditionals must have a boolean result.
Origin: /Users/thbar/git/xyz/roles/rvm.ruby/tasks/rubies.yml:65:9
63 register: rvm_delete_command
64 changed_when: "'#removing' in rvm_delete_command.stdout"
65 when: rvm1_delete_ruby is defined and rvm1_delete_ruby
^ column 9
Broken conditionals can be temporarily allowed with the `ALLOW_BROKEN_CONDITIONALS` configuration option.
fatal: [vagrant-worker-focal]: FAILED! => changed=false
msg: 'Task failed: Conditional result (False) was derived from value of type ''NoneType'' at ''<unknown>''. Conditionals must have a boolean result.'
Fix
The fix (without modifying the role) is quite easy:
I think doing the same in the role would be a good fix too, ensuring the default experience works.
Sidenote (if useful)
This is another solution to delete more versions of Ruby at once:
# The RVM ansible role does not support deleting more than one Ruby version
# https://github.com/rvm/rvm1-ansible?tab=readme-ov-file#upgrading-and-removing-old-versions-of-ruby
# So I added this custom task to delete a whole list during maintenance
- name: Delete obsolete ruby
command: '{{ rvm1_rvm }} remove {{ item }}'
become_user: '{{ rvm1_user }}'
and then:
- include_tasks: delete_obsolete_rubies.yml
with_items: "{{ rubies_to_delete | default([]) }}"
If you do not do anything specific and use the role, it defines
rvm1_delete_rubylike this:rvm1-ansible/defaults/main.yml
Lines 11 to 12 in bb64cfd
which then can optionally delete one version of Ruby, here:
rvm1-ansible/tasks/rubies.yml
Lines 61 to 65 in bb64cfd
While upgrading from 2.17 to 2.19, I got this error:
Details
Fix
The fix (without modifying the role) is quite easy:
I think doing the same in the role would be a good fix too, ensuring the default experience works.
Sidenote (if useful)
This is another solution to delete more versions of Ruby at once:
and then: