1
0
Fork 0
mirror of https://github.com/roles-ansible/ansible_role_etebase.git synced 2024-08-16 10:19:52 +02:00
ansible_role_etebase/tasks/set_version.yml
2023-10-29 14:43:07 +01:00

45 lines
1.7 KiB
YAML

---
- name: "Determine 'latest' version release"
when: etebase__version == "latest"
block:
- name: "Get latest etebase release metadata"
ansible.builtin.uri:
url: "{{ etebase__repo_api }}"
return_content: true
register: etebase_remote_metadata
when: not ansible_check_mode
- name: "Fail if running in check mode without versions set."
ansible.builtin.fail:
msg: |
"You are running this playbook in check mode:
Please set the Etebase version with the variable 'etebase__version', because the
URI module cannot detect the latest version in this mode."
when: ansible_check_mode and (etebase__version == 'latest' or etebase__version == 'present')
- name: Extract semantic version tags
ansible.builtin.set_fact:
semantic_version_tags: "{{ etebase_remote_metadata.json | selectattr('name', 'match', '^[0-9]+\\.[0-9]+\\.[0-9]+$') | list }}"
- name: Sort semantic version tags
ansible.builtin.set_fact:
sorted_semantic_version_tags: "{{ semantic_version_tags | sort(attribute='name') }}"
- name: Get the latest tag
ansible.builtin.set_fact:
etebase__latest_tag: "{{ sorted_semantic_version_tags | last }}"
- name: "Set etebase version target (latest tag)"
ansible.builtin.set_fact:
etebase_version_target: "{{ etebase__latest_tag.name }}"
when: not ansible_check_mode
- name: "Set etebase version target {{ etebase__version }}"
ansible.builtin.set_fact:
etebase_version_target: "{{ etebase__version }}"
when: etebase__version != "latest"
- name: Print Etebase Version # noqa: H500
ansible.builtin.debug:
verbosity: 1
msg: "etebase version is set to {{ etebase_version_target }}"