bundles/nodejs: only install nodesource packages if debian does not ship that version

This commit is contained in:
Franzi 2024-01-01 10:11:11 +01:00
parent a929f24977
commit 46e00d6fc8
Signed by: kunsi
GPG key ID: 12E3D2136B818350
2 changed files with 32 additions and 12 deletions

View file

@ -2,8 +2,8 @@ actions = {
'nodejs_install_yarn': {
'command': 'npm install -g yarn@latest',
'unless': 'test -e /usr/lib/node_modules/yarn',
'needs': {
'pkg_apt:nodejs',
'after': {
'pkg_apt:',
},
},
}

View file

@ -2,7 +2,6 @@ defaults = {
'apt': {
'additional_update_commands': {
# update npm to latest version
'npm install -g npm@latest',
'npm install -g yarn@latest',
},
'packages': {
@ -14,20 +13,41 @@ defaults = {
},
}
VERSIONS_SHIPPED_BY_DEBIAN = {
10: 10,
11: 12,
12: 18,
13: 18,
}
@metadata_reactor.provides(
'apt/repos/nodejs/items',
)
def nodejs_from_version(metadata):
version = metadata.get('nodejs/version')
return {
'apt': {
'repos': {
'nodejs': {
'items': {
f'deb https://deb.nodesource.com/node_{version}.x {{os_release}} main',
f'deb-src https://deb.nodesource.com/node_{version}.x {{os_release}} main',
if version != VERSIONS_SHIPPED_BY_DEBIAN[node.os_version[0]]:
return {
'apt': {
'additional_update_commands': {
# update npm to latest version
'npm install -g npm@latest',
},
'repos': {
'nodejs': {
'items': {
f'deb https://deb.nodesource.com/node_{version}.x {{os_release}} main',
f'deb-src https://deb.nodesource.com/node_{version}.x {{os_release}} main',
},
},
},
},
},
}
}
else:
return {
'apt': {
'packages': {
'npm': {},
},
},
}