mirror of
https://gitlab.com/sagidayan/linux-config.git
synced 2024-11-24 08:15:26 +00:00
72 lines
2.3 KiB
YAML
72 lines
2.3 KiB
YAML
---
|
|
- name: Validate manual versioning folder
|
|
ansible.builtin.file:
|
|
state: directory
|
|
path: ~/.ansible_gh_release_versions
|
|
mode: '0755'
|
|
|
|
- name: Setting local release file path
|
|
set_fact:
|
|
local_version_file: "~/.ansible_gh_release_versions/{{ name }}"
|
|
|
|
- name: Fetch latest release tarball url
|
|
ansible.builtin.shell:
|
|
cmd: curl -s https://api.github.com/repos/{{ repo }}/releases/latest | jq -r '.assets[] | select(.browser_download_url|test("{{ filter }}")) | .browser_download_url'
|
|
register: tar_url
|
|
changed_when: false
|
|
|
|
- name: Get latest version tag from github
|
|
ansible.builtin.shell:
|
|
cmd: 'echo {{ tar_url.stdout }} | grep -oP "(?<=download\/).*(?=\/)"'
|
|
changed_when: false
|
|
register: version
|
|
|
|
- name: Get latest version from local entry
|
|
set_fact:
|
|
local_version: "{{ lookup('file', local_version_file, errors='ignore') | default(NOT_FOUND) }}"
|
|
version: "{{ version.stdout }}"
|
|
tar_url: "{{ tar_url.stdout }}"
|
|
tar_download_location: "/tmp/{{ name }}.tar.gz"
|
|
failed_when: false
|
|
|
|
- name: Unarchive the release
|
|
ansible.builtin.unarchive:
|
|
src: "{{ tar_url }}"
|
|
dest: /tmp/
|
|
remote_src: yes
|
|
when: version != local_version
|
|
|
|
- name: Unarchive release source
|
|
ansible.builtin.unarchive:
|
|
src: "https://github.com/{{ repo }}/archive/refs/tags/{{ version }}.tar.gz"
|
|
dest: /tmp/
|
|
remote_src: yes
|
|
when: version != local_version and (include_source is defined)
|
|
|
|
- name: Moving bin to /usr/local/bin
|
|
become: true
|
|
ansible.builtin.shell: |
|
|
cp /tmp{{ bin_path }} /usr/local/bin/
|
|
when: version != local_version
|
|
|
|
- name: Adding man page if needed
|
|
become: true
|
|
ansible.builtin.shell: |
|
|
cp /tmp{{ man_path }} /usr/share/man/man1/
|
|
register: added_man
|
|
when: man_path is defined and (version != local_version)
|
|
|
|
- name: Update mandb if needed
|
|
become: true
|
|
ansible.builtin.shell: mandb || true
|
|
when: added_man is defined and (version != local_version)
|
|
|
|
- name: Adding autocomplete if needed
|
|
ansible.builtin.shell: |
|
|
cp /tmp/{{ autocomplete_path }} ~/.shellconfig/autocomplete/{{ name }}.autocomplete
|
|
when: autocomplete_path is defined and (version != local_version)
|
|
|
|
- name: Updating local version entry
|
|
ansible.builtin.shell: echo {{ version }} > {{ local_version_file }}
|
|
when: version != local_version
|
|
|