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