845b4d0718
We need to be explicit that we want the npm upload job to run on the release slave otherwise gearman will attempt to run it on the default slave label which will fail because that job won't be registered. To do this rename the job so that it matches existing convention which makes the regex easier to read/write. Then update the reuseable slave regex to include the job which will force it to run on release slave without offlining the slave. Change-Id: I26355680f2d8fc3fa5f514370d1586deb701c21c
171 lines
4.5 KiB
YAML
171 lines
4.5 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:
|
|
- tarball:
|
|
project: '{name}'
|
|
site: '{tarball-site}'
|
|
- console-log
|
|
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}'
|
|
|
|
# Uploads a release tarball to npm.
|
|
- job-template:
|
|
name: '{name}-npm-upload'
|
|
node: release
|
|
|
|
builders:
|
|
- shell: |
|
|
/usr/local/jenkins/slave_scripts/npm-tarball-upload.sh {name} {tarball-site}
|
|
|
|
publishers:
|
|
- console-log
|
|
|
|
- job-group:
|
|
name: javascript-jobs
|
|
jobs:
|
|
- 'gate-{name}-npm-run-{command}':
|
|
command: 'lint'
|
|
- 'gate-{name}-npm-run-{command}':
|
|
command: 'test'
|
|
|
|
- job-group:
|
|
name: publish-to-npm
|
|
jobs:
|
|
- '{name}-npm-publish-tarball'
|
|
- '{name}-npm-upload'
|