diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7288710afc8c0..e858f2e20c21b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -137,8 +137,8 @@ The task above takes a little time to start the servers. You can also start the Packages are built using fpm, pleaserun, dpkg, and rpm. fpm and pleaserun can be installed using gem. Package building has only been tested on Linux and is not supported on any other platform. ```sh apt-get install ruby-dev rpm -gem install fpm -v 1.5.0 # required by pleaserun 0.0.16 -gem install pleaserun -v 0.0.16 # higher versions fail at the moment +gem install fpm -v 1.5.0 +gem install pleaserun -v 0.0.24 npm run build:ospackages ``` diff --git a/Gruntfile.js b/Gruntfile.js index 9c694db149b21..568917fa74200 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -23,10 +23,8 @@ module.exports = function (grunt) { switch (require('os').platform()) { case 'win32': return 'IE'; - case 'darwin': - return 'Chrome'; default: - return 'Firefox'; + return 'Chrome'; } }()), diff --git a/tasks/build/osPackages.js b/tasks/build/osPackages.js index 4532ccb302b33..30b99a9a1623d 100644 --- a/tasks/build/osPackages.js +++ b/tasks/build/osPackages.js @@ -59,7 +59,7 @@ export default (grunt) => { `${buildDir}/=${config.path.home}/`, `${buildDir}/installedPlugins/.data/=${config.path.data}/`, `${servicesByName.sysv.outputDir}/etc/=/etc/`, - `${servicesByName.systemd.outputDir}/lib/=/lib/` + `${servicesByName.systemd.outputDir}/etc/=/etc/` ]; //Manually find flags, multiple args without assignment are not entirely parsed diff --git a/tasks/jenkins.js b/tasks/jenkins.js index 141f8084a9ec3..1e8c984d12743 100644 --- a/tasks/jenkins.js +++ b/tasks/jenkins.js @@ -2,7 +2,15 @@ import { compact } from 'lodash'; import { delimiter } from 'path'; module.exports = function (grunt) { - grunt.registerTask('jenkins', 'Jenkins build script', function () { + // TODO: remove after migration to new CI is complete + grunt.registerTask('jenkins', compact([ + 'jenkins:env', + 'rejectRejFiles', + 'test', + process.env.JOB_NAME === 'kibana_core' ? 'build' : null + ])); + + grunt.registerTask('jenkins:env', () => { // make sure JAVA_HOME points to JDK8 const HOME = '/usr/lib/jvm/jdk8'; process.env.JAVA_HOME = HOME; @@ -11,15 +19,22 @@ module.exports = function (grunt) { const path = process.env.PATH.split(delimiter); path.unshift(`${HOME}/bin`); process.env.PATH = path.join(delimiter); + }); - // always build os packages on jenkins - grunt.option('os-packages', true); + grunt.registerTask('jenkins:unit', [ + 'jenkins:env', + 'rejectRejFiles', - grunt.task.run(compact([ - 'rejectRejFiles', - 'test', - process.env.JOB_NAME === 'kibana_core' ? 'build' : null - ])); - }); + 'eslint:source', + 'test:server', + 'test:browser', + ]); + + grunt.registerTask('jenkins:selenium', [ + 'jenkins:env', + 'rejectRejFiles', + + 'test:ui' + ]); }; diff --git a/test/scripts/_jenkins_setup.sh b/test/scripts/_jenkins_setup.sh new file mode 100755 index 0000000000000..850bfd91c364d --- /dev/null +++ b/test/scripts/_jenkins_setup.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +set -e + +###*****### +### CWD ### +###*****### +if [ -n "$WORKSPACE" ]; then + cd "$WORKSPACE" +else + echo 'Unable to find the $WORKSPACE environment variable, is this jenkins?' + exit 1 +fi + + +###*****### +### NVM ### +###*****### +export NVM_DIR="/var/lib/jenkins/.nvm" +NVM_SCRIPT="$NVM_DIR/nvm.sh" +if [ -s "$NVM_SCRIPT" ]; then + . "$NVM_SCRIPT" # load nvm +else + echo "Unable to find the nvm script at \"$NVM_SCRIPT\"" + exit 1 +fi + +nvm install "$(cat .node-version)" + +###*****### +### NPM ### +###*****### +npm install + + +if [ -z "$(npm bin)" ]; then + echo "npm does not know where it stores executables..... huh??" + exit 1 +fi diff --git a/test/scripts/jenkins_build_snapshot.sh b/test/scripts/jenkins_build_snapshot.sh new file mode 100755 index 0000000000000..ffba35160afdd --- /dev/null +++ b/test/scripts/jenkins_build_snapshot.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +source "$(dirname $0)/_jenkins_setup.sh" + +"$(npm bin)/grunt" build; diff --git a/test/scripts/jenkins_selenium.sh b/test/scripts/jenkins_selenium.sh new file mode 100755 index 0000000000000..58224b32909b9 --- /dev/null +++ b/test/scripts/jenkins_selenium.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +source "$(dirname $0)/_jenkins_setup.sh" + +xvfb-run "$(npm bin)/grunt" jenkins:selenium; diff --git a/test/scripts/jenkins_unit.sh b/test/scripts/jenkins_unit.sh new file mode 100755 index 0000000000000..ebeceabed8eeb --- /dev/null +++ b/test/scripts/jenkins_unit.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +source "$(dirname $0)/_jenkins_setup.sh" + +xvfb-run "$(npm bin)/grunt" jenkins:unit;