From 9bd6c03bf5c7963367f0a905e3846ced7eec309f Mon Sep 17 00:00:00 2001 From: "flyingscorpio@clevo" Date: Fri, 12 May 2023 17:59:35 +0200 Subject: [PATCH] Use rescue to conditionnaly build neovim according to available version --- roles/neovim/tasks/build_neovim.yml | 40 +++++++++++++++++++++++++++++ roles/neovim/tasks/debian.yml | 28 +++++++------------- 2 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 roles/neovim/tasks/build_neovim.yml diff --git a/roles/neovim/tasks/build_neovim.yml b/roles/neovim/tasks/build_neovim.yml new file mode 100644 index 0000000..c350233 --- /dev/null +++ b/roles/neovim/tasks/build_neovim.yml @@ -0,0 +1,40 @@ +--- + +- name: Install build dependencies + become: true + ansible.builtin.apt: + name: + - ninja-build + - gettext + - cmake + - unzip + +- name: Make sure build directory exists + ansible.builtin.file: + path: ~/builds + state: directory + mode: 0755 + +- name: Clone neovim repo + ansible.builtin.git: + repo: https://github.com/neovim/neovim + dest: ~/builds/neovim + clone: true + version: stable + depth: 1 + +- name: Make neovim + community.general.make: + chdir: ~/builds/neovim + params: + CMAKE_BUILD_TYPE: Release + +- name: Create neovim deb package + ansible.builtin.command: + chdir: ~/builds/neovim/build + cmd: cpack -G DEB + +- name: Install neovim package + become: true + ansible.builtin.apt: + deb: ~/builds/neovim/build/nvim-linux64.deb diff --git a/roles/neovim/tasks/debian.yml b/roles/neovim/tasks/debian.yml index 832f40e..168b46d 100644 --- a/roles/neovim/tasks/debian.yml +++ b/roles/neovim/tasks/debian.yml @@ -1,24 +1,14 @@ --- -- name: Find latest neovim version - ansible.builtin.uri: - url: https://github.com/neovim/neovim/releases/latest - register: latest_http_content -- name: Set latest neovim version - ansible.builtin.set_fact: - neovim_version: "{{ latest_http_content.url | split('/') | last }}" - -- name: Get latest neovim deb package - ansible.builtin.get_url: - url: "https://github.com/neovim/neovim/releases/download/{{ neovim_version }}/nvim-linux64.deb" - checksum: "sha256:https://github.com/neovim/neovim/releases/download/{{ neovim_version }}/nvim-linux64.deb.sha256sum" - dest: /tmp/nvim-linux64.deb - mode: 0644 - -- name: Install neovim deb package - become: true - ansible.builtin.apt: - deb: /tmp/nvim-linux64.deb +- name: Install neovim + block: + - name: Try installing with apt (from neovim v0.8) + become: true + ansible.builtin.apt: + name: neovim>0.8* + rescue: + - name: Build neovim + ansible.builtin.include_tasks: build_neovim.yml - name: Install things with apt become: true