From 66efc7b88f092b750d8412a4477090bedee93ba4 Mon Sep 17 00:00:00 2001 From: "Kenneth Benzie (Benie)" Date: Sun, 7 Apr 2024 16:28:33 +0100 Subject: [PATCH] Add gitea role for tea cli tool --- roles/gitea/tasks/Linux.yaml | 49 ++++++++++++++++++++++++++++++++++++ roles/gitea/tasks/main.yaml | 12 +++++++++ roles/gitea/vars/main.yaml | 4 +++ 3 files changed, 65 insertions(+) create mode 100644 roles/gitea/tasks/Linux.yaml create mode 100644 roles/gitea/tasks/main.yaml create mode 100644 roles/gitea/vars/main.yaml diff --git a/roles/gitea/tasks/Linux.yaml b/roles/gitea/tasks/Linux.yaml new file mode 100644 index 0000000..c272511 --- /dev/null +++ b/roles/gitea/tasks/Linux.yaml @@ -0,0 +1,49 @@ +--- +- name: stat tea executable + stat: + path: '{{tea_package_exe}}' + register: tea + +- name: get installed version + when: tea.stat.exists + command: '{{tea_package_exe}} --version' + register: tea_version_string + +- name: extract version number + when: tea.stat.exists + set_fact: + installed_version: "{{tea_version_string.stdout | + regex_search('^.*(\\d+\\.\\d+\\.\\d+).*golang.*$', '\\1') }}" + +- name: get latest release json + uri: + url: https://gitea.com/api/v1/repos/gitea/tea//releases/latest + register: latest + +- name: check installed version + set_fact: + install_required: > + {{not tea.stat.exists or latest.json.name != 'v' + installed_version[0]}} + asset: '{{latest.json.assets | json_query(tea_asset_query)}}' + +- name: create package directory + when: install_required + become: true + file: + state: directory + path: '{{tea_package_dir}}/bin' + +- name: download package + when: install_required + become: true + get_url: + url: '{{asset.browser_download_url}}' + dest: '{{tea_package_exe}}' + mode: '0755' + +- name: install package + when: install_required + become: true + command: + cmd: 'stow --target /usr/local .' + chdir: '{{tea_package_dir}}' diff --git a/roles/gitea/tasks/main.yaml b/roles/gitea/tasks/main.yaml new file mode 100644 index 0000000..f52a6ae --- /dev/null +++ b/roles/gitea/tasks/main.yaml @@ -0,0 +1,12 @@ +--- +- when: ansible_os_family != 'Darwin' and ansible_os_family != 'Windows' + include_tasks: Linux.yaml + +- when: ansible_os_family == 'Windows' + include_tasks: Windows.yaml + +- name: install homebrew package + when: ansible_os_family == 'Darwin' + homebrew: + name: tea + state: latest diff --git a/roles/gitea/vars/main.yaml b/roles/gitea/vars/main.yaml new file mode 100644 index 0000000..96dc73f --- /dev/null +++ b/roles/gitea/vars/main.yaml @@ -0,0 +1,4 @@ +--- +tea_package_dir: /usr/local/stow/tea +tea_package_exe: '{{tea_package_dir}}/bin/tea' +tea_asset_query: '[?contains(name, `tea-`)] | [?contains(name, `linux-amd64`)] | [0]'