Add glab role for macOS, Debiam distros, and Windows
This commit is contained in:
parent
c4d4f5395a
commit
ad9d1fbe4f
5
roles/glab/tasks/Darwin.yaml
Normal file
5
roles/glab/tasks/Darwin.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: install homebrew package
|
||||
homebrew:
|
||||
name: glab
|
||||
state: latest
|
64
roles/glab/tasks/Debian.yaml
Normal file
64
roles/glab/tasks/Debian.yaml
Normal file
@ -0,0 +1,64 @@
|
||||
---
|
||||
- set_fact:
|
||||
glab: /usr/bin/glab
|
||||
- name: stat the executable
|
||||
stat:
|
||||
path: '{{glab}}'
|
||||
register: stat_glab
|
||||
|
||||
- name: get instlal version
|
||||
when: stat_glab.stat.exists
|
||||
command: '{{glab}} --version'
|
||||
register: glab_version_output
|
||||
changed_when: false
|
||||
|
||||
- set_fact:
|
||||
glab_version: '{{glab_version_output.stdout | replace("glab version ", "v")}}'
|
||||
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'
|
||||
|
||||
- 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: install zsh completions
|
||||
when: glab_version is not defined or glab_version != latest_version
|
||||
command:
|
||||
glab completion -s zsh > ~/.local/share/zsh/site-functions/_glab
|
5
roles/glab/tasks/Windows.yaml
Normal file
5
roles/glab/tasks/Windows.yaml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: install chocolatey package
|
||||
win_chocolatey:
|
||||
name: glab
|
||||
state: latest
|
2
roles/glab/tasks/main.yaml
Normal file
2
roles/glab/tasks/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
- include_tasks: '{{ansible_os_family}}.yaml'
|
Loading…
x
Reference in New Issue
Block a user