feat(ubuntu): Install github releases dynamically
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
This commit is contained in:
37
roles/ubuntu/tasks/github_releases.yml
Normal file
37
roles/ubuntu/tasks/github_releases.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
---
|
||||
- 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
|
||||
Reference in New Issue
Block a user