--- - name: get latest github release uri: url: https://api.github.com/repos/jmespath/jp/releases/latest register: latest # TODO: Support arm64 - set_fact: asset_query: '[?contains(name, `jp-darwin-amd64`)] | [0]' assets: '{{latest.json.assets}}' latest_version: '{{latest.json.tag_name}}' jp_exe: '{{ansible_env.HOME}}/.local/bin/jp' - name: check if already installed stat: path: '{{jp_exe}}' register: jp_exe - name: get installed version when: jp_stat.stat.exists == True command: '{{jp_exe}} --version' register: jp_version_output changed_when: false - when: jp_stat.stat.exists == True set_fact: installed_version: '{{jp_version_output.stdout.strip() | regex_replace("^.*(\d+\.\d+\.\d+).*$", "\1")}}' - set_fact: asset: '{{assets | to_json | from_json | json_query(asset_query)}}' - name: download executable when: installed_version is not defined or installed_version != latest_version get_url: url: '{{asset.browser_download_url}}' dest: '{{jp_exe}}' mode: +x