--- - name: "Check gitea installed version" ansible.builtin.shell: "set -eo pipefail; {{ gitea_full_executable_path }} -v | cut -d' ' -f 3" args: executable: /bin/bash register: gitea_active_version changed_when: false failed_when: false - name: "Determine 'latest' version release" when: gitea_version == "latest" block: - name: "Get latest gitea release metadata" ansible.builtin.uri: url: https://api.github.com/repos/go-gitea/gitea/releases/latest return_content: true register: gitea_remote_metadata become: false 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 Gitea version with the variable 'gitea_version', because the URI module cannot detect the latest version in this mode." when: ansible_check_mode and (gitea_version == 'latest' or gitea_version == 'present') - name: "Set fact latest gitea release" ansible.builtin.set_fact: gitea_remote_version: "{{ gitea_remote_metadata.json.tag_name[1:] }}" when: not ansible_check_mode - name: "Set gitea version target (latest)" ansible.builtin.set_fact: gitea_version_target: "{{ gitea_remote_version }}" when: not ansible_check_mode - name: "Set gitea version target {{ gitea_version }}" ansible.builtin.set_fact: gitea_version_target: "{{ gitea_version }}" when: gitea_version != "latest" - name: 'Assert that remote version is higher' ansible.builtin.assert: that: - gitea_active_version is version(gitea_remote_version, 'lt') fail_msg: ERROR - Remote version is lower then current version! when: gitea_version == "latest" and gitea_active_version.stderr == "" | bool - name: "Generate gitea download URL" ansible.builtin.set_fact: gitea_dl_url: "https://github.com/go-gitea/gitea/releases/download/v{{ gitea_version_target }}/gitea-{{ gitea_version_target }}-linux-{{ gitea_arch }}"