Skip to content

Commit 2fc55cf

Browse files
authored
Merge pull request #853 from plotly/pretest-eval
Don't use `child_process.exec` to setup docker container on CircleCI
2 parents 5811c3f + 2226790 commit 2fc55cf

File tree

4 files changed

+40
-27
lines changed

4 files changed

+40
-27
lines changed

circle.yml

+2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ dependencies:
1313
pre:
1414
- docker pull plotly/testbed:latest
1515
post:
16+
- eval $(node tasks/run_docker.js)
1617
- npm run cibuild
1718
- npm run pretest
19+
- eval $(node tasks/setup_docker.js)
1820

1921
test:
2022
override:

tasks/pretest.js

-27
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ var fs = require('fs');
22

33
var constants = require('./util/constants');
44
var common = require('./util/common');
5-
var containerCommands = require('./util/container_commands');
6-
var isCI = process.env.CIRCLECI;
75

86
// main
97
makeCredentialsFile();
108
makeSetPlotConfigFile();
119
makeTestImageFolders();
12-
if(isCI) runAndSetupImageTestContainer();
1310

1411
// Create a credentials json file,
1512
// to be required in jasmine test suites and test dashboard
@@ -55,30 +52,6 @@ function makeTestImageFolders() {
5552
makeOne(constants.pathToTestImagesDiff, 'test image diff folder');
5653
}
5754

58-
// On CircleCI, run and setup image test container once an for all
59-
function runAndSetupImageTestContainer() {
60-
61-
function run() {
62-
var cmd = containerCommands.dockerRun;
63-
common.execCmd(cmd, function() {
64-
logger('run docker container');
65-
66-
setTimeout(setup, 500);
67-
});
68-
}
69-
70-
function setup() {
71-
var cmd = containerCommands.getRunCmd(isCI, [
72-
containerCommands.setup
73-
]);
74-
common.execCmd(cmd, function() {
75-
logger('setup docker container');
76-
});
77-
}
78-
79-
run();
80-
}
81-
8255
function logger(task) {
8356
console.log('ok ' + task);
8457
}

tasks/run_docker.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
var constants = require('./util/constants');
2+
var common = require('./util/common');
3+
var containerCommands = require('./util/container_commands');
4+
var isCI = process.env.CIRCLECI;
5+
6+
var msg = 'Booting up ' + constants.testContainerName + ' docker container';
7+
var cmd = containerCommands.dockerRun;
8+
9+
// Log command string on CircleCI,
10+
// because node's `child_process.exec()` is having issues there
11+
12+
if(isCI) {
13+
console.log(cmd);
14+
}
15+
else {
16+
console.log(msg);
17+
common.execCmd(cmd);
18+
}

tasks/setup_docker.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var constants = require('./util/constants');
2+
var common = require('./util/common');
3+
var containerCommands = require('./util/container_commands');
4+
var isCI = process.env.CIRCLECI;
5+
6+
var msg = 'Setting up ' + constants.testContainerName + ' docker container for testing';
7+
var cmd = containerCommands.getRunCmd(process.env.CIRCLECI, [
8+
containerCommands.setup
9+
]);
10+
11+
// Log command string on CircleCI,
12+
// because node's `child_process.exec()` is having issues there
13+
14+
if(isCI) {
15+
console.log(cmd);
16+
}
17+
else {
18+
console.log(msg);
19+
common.execCmd(cmd);
20+
}

0 commit comments

Comments
 (0)