75 lines
1.9 KiB
YAML
75 lines
1.9 KiB
YAML
---
|
|
- set_fact:
|
|
glab: /usr/bin/glab
|
|
- name: stat the executable
|
|
stat:
|
|
path: '{{glab}}'
|
|
register: stat_glab
|
|
|
|
- name: get install version
|
|
when: stat_glab.stat.exists
|
|
command: '{{glab}} --version'
|
|
register: glab_version_output
|
|
changed_when: false
|
|
|
|
- when: stat_glab.stat.exists
|
|
set_fact:
|
|
glab_version: '{{glab_version_output.stdout | replace("glab version ", "v")}}'
|
|
|
|
- set_fact:
|
|
gitlab_api: 'https://gitlab.com/api/v4'
|
|
project_id: 'gitlab-org%2Fcli'
|
|
|
|
- name: get list of gitlab releases
|
|
uri:
|
|
url:
|
|
'{{gitlab_api}}/projects/{{project_id}}/releases'
|
|
register: releases
|
|
|
|
- set_fact:
|
|
latest: '{{releases.json[0]}}'
|
|
latest_version: '{{releases.json[0].tag_name}}'
|
|
query: >
|
|
[?contains(name, `glab`)] |
|
|
[?contains(name, `Linux`)] |
|
|
[?contains(name, `{{ansible_machine}}.deb`)] | [0]
|
|
- set_fact:
|
|
asset: '{{latest.assets.links|json_query(query)}}'
|
|
|
|
- name: create download directory
|
|
when: glab_version is not defined or glab_version != latest_version
|
|
tempfile:
|
|
state: directory
|
|
suffix: glab
|
|
register: tempdir
|
|
|
|
- name: download .deb file
|
|
when: glab_version is not defined or glab_version != latest_version
|
|
get_url:
|
|
url: '{{asset.url}}'
|
|
dest: '{{tempdir.path}}/glab.deb'
|
|
environment: '{{proxy_environment}}'
|
|
|
|
- name: install .deb file
|
|
when: glab_version is not defined or glab_version != latest_version
|
|
become: true
|
|
apt:
|
|
deb: '{{tempdir.path}}/glab.deb'
|
|
|
|
- name: remove download directory
|
|
when: glab_version is not defined or glab_version != latest_version
|
|
file:
|
|
state: absent
|
|
path: '{{tempdir.path}}'
|
|
|
|
- name: get zsh completions source
|
|
command: glab completion -s zsh
|
|
register: glab_zsh_completions
|
|
changed_when: false
|
|
|
|
- name: install zsh completions
|
|
become: true
|
|
copy:
|
|
content: '{{glab_zsh_completions.stdout}}'
|
|
dest: /usr/local/share/zsh/site-functions/_glab
|