Files
ansible/roles/ubuntu/tasks/github_releases.yml
2025-02-12 23:35:02 +01:00

38 lines
1.1 KiB
YAML

---
- name: "Get latest version: {{ project.name }}"
ansible.builtin.shell: |
curl -s "https://api.github.com/repos/{{ project.repo }}/releases/latest" |
grep -Po '"tag_name": *"v\K[^"]*'
register: project_version
changed_when: false
- name: "Download: {{ project.name }}"
ansible.builtin.get_url:
url: "https://github.com/{{ project.repo }}/releases/download/v{{ project_version.stdout }}/{{ project.name }}_{{ project_version.stdout }}_Linux_x86_64.tar.gz"
dest: "/tmp/{{ project.name }}.tar.gz"
mode: "0666"
- name: "Extract binary: {{ project.name }}"
ansible.builtin.unarchive:
src: "/tmp/{{ project.name }}.tar.gz"
dest: "/tmp"
creates: "/tmp/{{ project.name }}"
remote_src: true
- name: "Install: {{ project.name }}"
ansible.builtin.copy:
src: "/tmp/{{ project.name }}"
dest: "/usr/local/bin/{{ project.name }}"
mode: "0755"
become: true
- name: Remove tar.gz and binary
ansible.builtin.file:
path: "{{ loop_file_name }}"
state: absent
loop:
- "/tmp/{{ project.name }}.tar.gz"
- "/tmp/{{ project.name }}"
loop_control:
loop_var: loop_file_name