summaryrefslogtreecommitdiffstats
path: root/roles/nodejs/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'roles/nodejs/tasks')
-rw-r--r--roles/nodejs/tasks/main.yml41
1 files changed, 41 insertions, 0 deletions
diff --git a/roles/nodejs/tasks/main.yml b/roles/nodejs/tasks/main.yml
new file mode 100644
index 00000000..d0d0d8f6
--- /dev/null
+++ b/roles/nodejs/tasks/main.yml
@@ -0,0 +1,41 @@
+---
+- name: "Check if nvm binary exists"
+ ansible.builtin.stat:
+ path: "{{ ansible_facts['env']['HOME'] }}/.nvm/nvm.sh"
+ register: nodejs_nvm_binary
+
+- name: "Download nvm installer"
+ ansible.builtin.get_url:
+ url: "https://raw.githubusercontent.com/nvm-sh/nvm/v{{ nodejs_nvm_version }}/install.sh"
+ dest: "/tmp/install_nvm.sh"
+ mode: "0755"
+ when: not nodejs_nvm_binary.stat.exists
+
+- name: "Install nvm"
+ ansible.builtin.command:
+ cmd: "/tmp/install_nvm.sh"
+ args:
+ creates: "{{ ansible_facts['env']['HOME'] }}/.nvm/nvm.sh"
+ when: not nodejs_nvm_binary.stat.exists
+
+- name: "Add nvm to shell profile"
+ ansible.builtin.blockinfile:
+ path: "{{ ansible_facts['env']['HOME'] }}/.bashrc"
+ state: "present"
+ prepend_newline: true
+ append_newline: true
+ marker: "# ==== {mark} ANSIBLE NVM CONFIG"
+ block: |
+ if [ -f "$HOME/.nvm/nvm.sh" ]; then
+ export NVM_DIR=~/.nvm
+ source "$HOME/.nvm/nvm.sh"
+ fi
+
+- name: "Install nodejs versions"
+ ansible.builtin.shell:
+ cmd: "source {{ ansible_facts['env']['HOME'] }}/.nvm/nvm.sh && nvm install {{ item }}"
+ args:
+ executable: /bin/bash
+ register: nodejs_nvm_install_result
+ changed_when: "'already installed' not in nodejs_nvm_install_result.stderr"
+ loop: "{{ nodejs_versions }}"