Add upload-npm role
We need a role for uploading content to npm. The old script assumed a global npm install - but as this runs on the executor we shouldn't assume that. Use nvm to install node into the work_dir and use the npm from that node installation. Change-Id: I7f7c031ce754838776043325025fe5928cd36135
This commit is contained in:
parent
ad1ce4fc2f
commit
20f7528a09
39
roles/upload-npm/README.rst
Normal file
39
roles/upload-npm/README.rst
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
Upload javascript packages to npm
|
||||||
|
|
||||||
|
**Role Variables**
|
||||||
|
|
||||||
|
.. zuul:rolevar:: npm_info
|
||||||
|
|
||||||
|
Complex argument which contains the information about the npm
|
||||||
|
server as well as the authentication information needed.
|
||||||
|
It is expected that this argument comes from a `Secret`.
|
||||||
|
This role expects to be run on the executor.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: username
|
||||||
|
|
||||||
|
Username to use to log in to npm.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: password
|
||||||
|
|
||||||
|
Password to use to log in to npm.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: email
|
||||||
|
|
||||||
|
Email associated with the npm account.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: author_name
|
||||||
|
|
||||||
|
npm author name.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: author_url
|
||||||
|
|
||||||
|
npm author url.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: author_email
|
||||||
|
|
||||||
|
npm author email.
|
||||||
|
|
||||||
|
.. zuul:rolevar:: registry_url
|
||||||
|
:default: //registry.npmjs.org
|
||||||
|
|
||||||
|
URL of npm registry server.
|
1
roles/upload-npm/defaults/main.yaml
Normal file
1
roles/upload-npm/defaults/main.yaml
Normal file
@ -0,0 +1 @@
|
|||||||
|
npm_registry_url: "{{ npm_info.registry_url|default('//registry.npmjs.org') }}"
|
21
roles/upload-npm/tasks/main.yaml
Normal file
21
roles/upload-npm/tasks/main.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# This is not optimized, but allows for getting a version of node in the
|
||||||
|
# home dir.
|
||||||
|
- name: Create .npmrc configuration file
|
||||||
|
template:
|
||||||
|
dest: "~/.npmrc"
|
||||||
|
mode: 0400
|
||||||
|
src: .npmrc.j2
|
||||||
|
|
||||||
|
- name: Install NVM
|
||||||
|
git:
|
||||||
|
repo: 'https://github.com/creationix/nvm'
|
||||||
|
dest: '~/.nvm'
|
||||||
|
version: v0.33.5
|
||||||
|
|
||||||
|
- name: Upload tarball to npm
|
||||||
|
shell:
|
||||||
|
executable: /bin/bash
|
||||||
|
cmd: |
|
||||||
|
nvm install node
|
||||||
|
nvm use node
|
||||||
|
npm publish --ignore-scripts {{ zuul.executor.work_dir }}/artifacts/{{ zuul.project.short_name }}-{{ project_ver }}.tar.gz
|
10
roles/upload-npm/templates/.npmrc.j2
Normal file
10
roles/upload-npm/templates/.npmrc.j2
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
init.author.name={{ npm_info.author_name }}
|
||||||
|
init.author.email={{ npm_info.author_email }}
|
||||||
|
init.author.url={{ npm_info.author_url }}
|
||||||
|
tag-version-prefix=
|
||||||
|
sign-git-tag=true
|
||||||
|
|
||||||
|
//registry.npmjs.org/:username={{ npm_info.username }}
|
||||||
|
//registry.npmjs.org/:_password={{ npm_info.password }}
|
||||||
|
|
||||||
|
//registry.npmjs.org/:email={{ npm_info.author_email }}
|
Loading…
Reference in New Issue
Block a user