diff --git a/circle.yml b/circle.yml index 7266d598b0c..ec21252af79 100644 --- a/circle.yml +++ b/circle.yml @@ -13,8 +13,10 @@ dependencies: pre: - docker pull plotly/testbed:latest post: + - eval $(node tasks/run_docker.js) - npm run cibuild - npm run pretest + - eval $(node tasks/setup_docker.js) test: override: diff --git a/tasks/pretest.js b/tasks/pretest.js index e4cbdffe520..e6ca9d90148 100644 --- a/tasks/pretest.js +++ b/tasks/pretest.js @@ -2,14 +2,11 @@ var fs = require('fs'); var constants = require('./util/constants'); var common = require('./util/common'); -var containerCommands = require('./util/container_commands'); -var isCI = process.env.CIRCLECI; // main makeCredentialsFile(); makeSetPlotConfigFile(); makeTestImageFolders(); -if(isCI) runAndSetupImageTestContainer(); // Create a credentials json file, // to be required in jasmine test suites and test dashboard @@ -55,30 +52,6 @@ function makeTestImageFolders() { makeOne(constants.pathToTestImagesDiff, 'test image diff folder'); } -// On CircleCI, run and setup image test container once an for all -function runAndSetupImageTestContainer() { - - function run() { - var cmd = containerCommands.dockerRun; - common.execCmd(cmd, function() { - logger('run docker container'); - - setTimeout(setup, 500); - }); - } - - function setup() { - var cmd = containerCommands.getRunCmd(isCI, [ - containerCommands.setup - ]); - common.execCmd(cmd, function() { - logger('setup docker container'); - }); - } - - run(); -} - function logger(task) { console.log('ok ' + task); } diff --git a/tasks/run_docker.js b/tasks/run_docker.js new file mode 100644 index 00000000000..804ed83f0c3 --- /dev/null +++ b/tasks/run_docker.js @@ -0,0 +1,18 @@ +var constants = require('./util/constants'); +var common = require('./util/common'); +var containerCommands = require('./util/container_commands'); +var isCI = process.env.CIRCLECI; + +var msg = 'Booting up ' + constants.testContainerName + ' docker container'; +var cmd = containerCommands.dockerRun; + +// Log command string on CircleCI, +// because node's `child_process.exec()` is having issues there + +if(isCI) { + console.log(cmd); +} +else { + console.log(msg); + common.execCmd(cmd); +} diff --git a/tasks/setup_docker.js b/tasks/setup_docker.js new file mode 100644 index 00000000000..75b579eb5b6 --- /dev/null +++ b/tasks/setup_docker.js @@ -0,0 +1,20 @@ +var constants = require('./util/constants'); +var common = require('./util/common'); +var containerCommands = require('./util/container_commands'); +var isCI = process.env.CIRCLECI; + +var msg = 'Setting up ' + constants.testContainerName + ' docker container for testing'; +var cmd = containerCommands.getRunCmd(process.env.CIRCLECI, [ + containerCommands.setup +]); + +// Log command string on CircleCI, +// because node's `child_process.exec()` is having issues there + +if(isCI) { + console.log(cmd); +} +else { + console.log(msg); + common.execCmd(cmd); +}