--- - name: stat tea executable stat: path: '{{tea_package_exe}}' register: tea - name: get installed version when: tea.stat.exists command: '{{tea_package_exe}} --version' register: tea_version_string - name: extract version number when: tea.stat.exists set_fact: installed_version: "{{tea_version_string.stdout | regex_search('^.*(\\d+\\.\\d+\\.\\d+).*golang.*$', '\\1') }}" - name: get latest release json uri: url: https://gitea.com/api/v1/repos/gitea/tea//releases/latest register: latest - name: check installed version set_fact: install_required: > {{not tea.stat.exists or latest.json.name != 'v' + installed_version[0]}} asset: '{{latest.json.assets | json_query(tea_asset_query)}}' - name: create package directory when: install_required become: true file: state: directory path: '{{tea_package_dir}}/bin' - name: download package when: install_required become: true get_url: url: '{{asset.browser_download_url}}' dest: '{{tea_package_exe}}' mode: '0755' environment: '{{proxy_environment}}' - name: install package when: install_required become: true command: cmd: 'stow --no-folding --target /usr/local .' chdir: '{{tea_package_dir}}'