zuul-jobs/roles/ensure-nodejs/tasks/main.yaml
Monty Taylor e188ce71ca Validate that node_version is set
We removed the default value, because having a default value actually
makes no sense at all. To be helpful for any transitions, add a runtime
check that the variable is set.

Also, while we're at it, update the docs to indicate that the parameter
is required.

Change-Id: I1e18ea51d9d56561608ff241d71b63965c4f78bd
2024-09-19 13:00:26 -07:00

69 lines
1.8 KiB
YAML

- name: Ensure we know what version of node to install
assert:
that: node_version is defined
- name: Update apt cache
apt:
update_cache: yes
become: yes
- name: Install prereqs
package:
name: apt-transport-https
state: present
become: yes
- name: Pin nodejs installs to nodesource
copy:
src: 00-nodesource.pref
dest: /etc/apt/preferences.d/00-nodesource.pref
mode: 0644
become: yes
- name: Add all repositories
include_role:
name: ensure-package-repositories
vars:
repositories_keys:
- url: https://deb.nodesource.com/gpgkey/nodesource.gpg.key
repositories_list:
- repo: deb-src https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main
- repo: deb https://deb.nodesource.com/node_{{ node_version }}.x {{ ansible_distribution_release }} main
when: node_version | int < 16
- name: Add all repositories
include_role:
name: ensure-package-repositories
vars:
repositories_keys:
- url: https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key
repositories_list:
- repo: deb https://deb.nodesource.com/node_{{ node_version }}.x nodistro main
when: node_version | int >= 16
# Use template so that we can easily update this in the future to be able to
# use a mirror location.
- name: Pin NodeJS to nodesource apt repository
become: yes
template:
dest: /etc/apt/preferences.d/nodejs.pref
group: root
mode: 0644
owner: root
src: nodejs.pref.j2
- name: Install NodeJS from nodesource
package:
name: nodejs
state: latest
become: yes
tags:
# Ignore ANSIBLE0010: We really want latest version
- skip_ansible_lint
- name: Output node version
command: node --version
- name: Output npm version
command: npm --version