mirror of
https://github.com/roles-ansible/ansible_role_etebase.git
synced 2024-08-16 10:19:52 +02:00
45 lines
1.7 KiB
YAML
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
|
|
ansible.builtin.debug:
|
|
verbosity: 1
|
|
msg: "etebase version is set to {{ etebase_version_target }}"
|