![Michael Krotscheck](/assets/img/avatar_default.png)
This adds an npm job that runs npm-pack, and then renames the tarballs to match our versioning scheme before uploading them to the tarball host. The `npm pack` command commits the current project to the local npm cache directory, which triggers a full lifecycle run (prepublish, etc). This generates a tarball with all assets listed in the package's "files" field, inside the npm cache. This tarball is then copied back to the working directory. Since the default naming is not helpful, the job then immediately renames it before the tarballs are published, using our usual version names. This job is then used by ironic-webclient. Note that this commit removes 'bare-precise' as a node option, because Ubuntu precise does not package a recent enough version of nodejs for any of this. Change-Id: Ifb7898f136fafae70b5b0cd2727cc478034667c7
151 lines
4.1 KiB
YAML
151 lines
4.1 KiB
YAML
# Executes a command registered inside of package.json. For more information on
|
|
# how this works, see https://docs.npmjs.com/cli/run-script. This build assumes
|
|
# that whatever is being run under the hood, it will pipe its output to the
|
|
# ./reports directory in the projects' root directory. This output is
|
|
# subsequently copied to static.openstack.org (the clickthrough target from
|
|
# gerrit).
|
|
- job-template:
|
|
name: 'gate-{name}-npm-run-{command}'
|
|
|
|
wrappers:
|
|
- build-timeout:
|
|
timeout: 40
|
|
- timestamps
|
|
|
|
builders:
|
|
- npm-install
|
|
- xvfb-install
|
|
- chrome-install
|
|
- firefox-install
|
|
- revoke-sudo
|
|
- xvfb-start
|
|
- gerrit-git-prep
|
|
- npm-run:
|
|
command: '{command}'
|
|
- assert-no-extra-files
|
|
publishers:
|
|
- console-log
|
|
- coverage-log
|
|
- scp:
|
|
site: 'static.openstack.org'
|
|
files:
|
|
- target: 'logs/$LOG_PATH'
|
|
source: 'reports/**'
|
|
keep-hierarchy: true
|
|
copy-after-failure: true
|
|
node: '{node}'
|
|
|
|
# Builds and uploads a tarball using NPM.
|
|
- job-template:
|
|
name: '{name}-npm-publish-tarball'
|
|
|
|
builders:
|
|
- npm-install
|
|
- revoke-sudo
|
|
- gerrit-git-prep
|
|
|
|
# This will build ./{name}-{version}.tgz, where {version} is read from
|
|
# package.json.
|
|
- npm-run:
|
|
command: 'pack'
|
|
- shell: |
|
|
#!/bin/bash -xe
|
|
/usr/local/jenkins/slave_scripts/version-properties.sh
|
|
source version.properties
|
|
|
|
# Move the autogenerated versioned tarball to the one we like.
|
|
mkdir -p dist
|
|
cp {name}-*.tgz dist/{name}-$PROJECT_VER.tar.gz
|
|
cp {name}-*.tgz dist/{name}-latest.tar.gz
|
|
publishers:
|
|
- console-log
|
|
- tarball
|
|
node: '{node}'
|
|
|
|
# Builds a draft application and uploads it to docs-draft. To use this build,
|
|
# your Gruntfile must declare a target named "build:draft"
|
|
- job-template:
|
|
name: 'gate-{name}-js-draft'
|
|
|
|
wrappers:
|
|
- build-timeout:
|
|
timeout: 40
|
|
- timestamps
|
|
|
|
builders:
|
|
- npm-install
|
|
- revoke-sudo
|
|
- gerrit-git-prep
|
|
- js-build:
|
|
command: 'build:draft'
|
|
envlist: 'grunt'
|
|
project: '{name}'
|
|
- assert-no-extra-files
|
|
|
|
publishers:
|
|
- console-log
|
|
- coverage-log
|
|
- scp:
|
|
site: 'static.openstack.org'
|
|
files:
|
|
- target: 'logs/$LOG_PATH'
|
|
source: 'reports/**'
|
|
keep-hierarchy: true
|
|
copy-after-failure: true
|
|
|
|
# We're uploading the compiled app as a pre-release sanity check,
|
|
# much like we do with docs builds.
|
|
- target: 'docs-draft/$LOG_PATH'
|
|
source: 'dist/**'
|
|
keep-hierarchy: true
|
|
copy-after-failure: false
|
|
node: '{node}'
|
|
|
|
# Builds a release tarball
|
|
- job-template:
|
|
name: '{name}-js-release-{branch-designator}'
|
|
|
|
builders:
|
|
- npm-install
|
|
- revoke-sudo
|
|
- gerrit-git-prep
|
|
- js-build:
|
|
command: 'build'
|
|
envlist: 'grunt'
|
|
- shell: |
|
|
#!/bin/bash -xe
|
|
/usr/local/jenkins/slave_scripts/version-properties.sh
|
|
source version.properties
|
|
|
|
# Clean/create a tarball directory
|
|
rm -rf tarballs
|
|
mkdir -p tarballs
|
|
|
|
# Create an archive tarball.
|
|
tar -czf {name}-$PROJECT_VER.tar.gz dist/
|
|
cp {name}-$PROJECT_VER.tar.gz tarballs/{name}-latest.tar.gz
|
|
mv {name}-$PROJECT_VER.tar.gz tarballs/
|
|
publishers:
|
|
- console-log
|
|
- coverage-log
|
|
- scp:
|
|
site: 'static.openstack.org'
|
|
files:
|
|
- target: 'logs/$LOG_PATH'
|
|
source: 'reports/**'
|
|
keep-hierarchy: true
|
|
copy-after-failure: true
|
|
- target: 'tarballs/{name}/'
|
|
source: 'tarballs/*.tar.gz'
|
|
keep-hierarchy: false
|
|
copy-after-failure: false
|
|
node: '{node}'
|
|
|
|
- job-group:
|
|
name: javascript-jobs
|
|
jobs:
|
|
- 'gate-{name}-npm-run-{command}':
|
|
command: 'lint'
|
|
- 'gate-{name}-npm-run-{command}':
|
|
command: 'test'
|