npm: Add no_bin_links option (#2146)

* Add no-bin-links option to npm

* Add changelog

* Fix changelog format

* Add integration test

* Change node package from thelounge to ncp
This commit is contained in:
Amin Vakil 2021-04-11 08:28:48 +04:30 committed by GitHub
commit fa13826273
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 80 additions and 1 deletions

View file

@ -0,0 +1,64 @@
---
- name: 'Remove any node modules'
file:
path: '{{ remote_dir }}/node_modules'
state: absent
- vars:
# sample: node-v8.2.0-linux-x64.tar.xz
node_path: '{{ remote_dir }}/{{ nodejs_path }}/bin'
package: 'ncp'
block:
- shell: npm --version
environment:
PATH: '{{ node_path }}:{{ ansible_env.PATH }}'
register: npm_version
- debug:
var: npm_version.stdout
- name: 'Install simple package with no_bin_links disabled'
npm:
path: '{{ remote_dir }}'
executable: '{{ node_path }}/npm'
state: present
name: '{{ package }}'
no_bin_links: false
environment:
PATH: '{{ node_path }}:{{ ansible_env.PATH }}'
register: npm_install_no_bin_links_disabled
- name: 'Make sure .bin folder has been created'
stat:
path: "{{ remote_dir }}/node_modules/.bin"
register: npm_dotbin_folder_disabled
- name: 'Remove any node modules'
file:
path: '{{ remote_dir }}/node_modules'
state: absent
- name: 'Install simple package with no_bin_links enabled'
npm:
path: '{{ remote_dir }}'
executable: '{{ node_path }}/npm'
state: present
name: '{{ package }}'
no_bin_links: true
environment:
PATH: '{{ node_path }}:{{ ansible_env.PATH }}'
register: npm_install_no_bin_links_enabled
- name: 'Make sure .bin folder has not been created'
stat:
path: "{{ remote_dir }}/node_modules/.bin"
register: npm_dotbin_folder_enabled
- assert:
that:
- npm_install_no_bin_links_disabled is success
- npm_install_no_bin_links_disabled is changed
- npm_install_no_bin_links_enabled is success
- npm_install_no_bin_links_enabled is changed
- npm_dotbin_folder_disabled.stat.exists
- not npm_dotbin_folder_enabled.stat.exists

View file

@ -1,2 +1,3 @@
- include_tasks: setup.yml
- include_tasks: test.yml
- include_tasks: no_bin_links.yml