kibana/tasks/config/run.js
Spencer f76bef46c0 [ftr] remove digdug, use chromedriver directly (#11558)
* [ftr] remove digdug, use chromedriver directly

why?
 - digdug is meant to be used by intern, and expects a certain lifecycle that the FTR has tried and continuously fails to mimic
 - rather than continue trying to force digdug into the stack, just spawn chromedriver ourselves. We know how to handle it
 - cleans up verbose remote logging while we're in there, since selenium-standalone-server went with digdug, which was previously doing the verbose logging
 - deprecate config.servers.webdriver
 - add config.chromedriver.url
 - if url at config.chromedriver.url points to a server that responds to http requests use it as the chromedriver instance, enables running chrome in a VM or container
 - if pings to config.chromedriver.url fail a local chromedriver is started

* address review requests
2017-05-04 13:27:18 -07:00

175 lines
4.2 KiB
JavaScript

import { format } from 'url';
import { resolve } from 'path';
module.exports = function (grunt) {
const platform = require('os').platform();
const root = p => resolve(__dirname, '../../', p);
const binScript = /^win/.test(platform) ? '.\\bin\\kibana.bat' : './bin/kibana';
const buildScript = /^win/.test(platform) ? '.\\build\\kibana\\bin\\kibana.bat' : './build/kibana/bin/kibana';
const pkgVersion = grunt.config.get('pkg.version');
const releaseBinScript = `./build/kibana-${pkgVersion}-linux-x86_64/bin/kibana`;
const uiConfig = require(root('test/server_config'));
const stdDevArgs = [
'--env.name=development',
'--logging.json=false',
];
const buildTestsArgs = [
...stdDevArgs,
'--plugins.initialize=false',
'--optimize.bundleFilter=tests',
];
const kbnServerFlags = grunt.option.flags().reduce(function (flags, flag) {
if (flag.startsWith('--kbnServer.')) {
flags.push(`--${flag.slice(12)}`);
}
return flags;
}, []);
return {
testServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...buildTestsArgs,
'--server.port=5610',
...kbnServerFlags,
]
},
apiTestServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...stdDevArgs,
'--optimize.enabled=false',
'--elasticsearch.url=' + format(uiConfig.servers.elasticsearch),
'--server.port=' + uiConfig.servers.kibana.port,
'--server.xsrf.disableProtection=true',
...kbnServerFlags,
]
},
testUIServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...stdDevArgs,
'--server.port=' + uiConfig.servers.kibana.port,
'--elasticsearch.url=' + format(uiConfig.servers.elasticsearch),
...kbnServerFlags,
]
},
testUIReleaseServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: releaseBinScript,
args: [
...stdDevArgs,
'--server.port=' + uiConfig.servers.kibana.port,
'--elasticsearch.url=' + format(uiConfig.servers.elasticsearch),
...kbnServerFlags,
]
},
testUIDevServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...stdDevArgs,
'--server.port=' + uiConfig.servers.kibana.port,
'--elasticsearch.url=' + format(uiConfig.servers.elasticsearch),
'--dev',
'--no-base-path',
'--no-ssl',
'--optimize.lazyPort=5611',
'--optimize.lazyPrebuild=true',
'--optimize.bundleDir=optimize/testUiServer',
...kbnServerFlags,
]
},
testCoverageServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...buildTestsArgs,
'--server.port=5610',
'--tests_bundle.instrument=true',
...kbnServerFlags,
]
},
devTestServer: {
options: {
wait: false,
ready: /Server running/,
quiet: false,
failOnError: false
},
cmd: binScript,
args: [
...buildTestsArgs,
'--dev',
'--no-watch',
'--no-ssl',
'--no-base-path',
'--server.port=5610',
'--optimize.lazyPort=5611',
'--optimize.lazyPrebuild=true',
'--optimize.bundleDir=optimize/testdev',
...kbnServerFlags,
]
},
optimizeBuild: {
options: {
wait: false,
ready: /Optimization .+ complete/,
quiet: true
},
cmd: buildScript,
args: [
'--env.name=production',
'--logging.json=false',
'--plugins.initialize=false',
'--server.autoListen=false',
...kbnServerFlags,
]
}
};
};