Skip to content

Commit e692b61

Browse files
StefanStefan
Stefan
authored and
Stefan
committed
autumn cleanup
1 parent 96c4d29 commit e692b61

20 files changed

+7528
-3835
lines changed

Dockerfile

-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ RUN source $NVM_DIR/nvm.sh \
2626
ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
2727
ENV PATH $NVM_DIR/versions/node/v$NODE_VERSION/bin:$PATH
2828

29-
RUN curl https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb > /root/google-chrome-stable_current_amd64.deb
30-
RUN apt install -y /root/google-chrome-stable_current_amd64.deb
31-
3229
RUN mkdir /server
3330
RUN mkdir /build
3431
RUN mkdir /src

Linux_results.ods

10.4 KB
Binary file not shown.

package.json

+15-21
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,24 @@
1111
"bench": "cd webdriver-ts && cross-env LANG=\"en_US.UTF-8\" node dist/benchmarkRunner.js",
1212
"results": "cd webdriver-ts && npm run results",
1313
"bench-all": "cd webdriver-ts && npm run bench && npm run results",
14-
"selenium": "cd webdriver-ts && npm run bench && npm run results",
14+
"compile-webdriver-ts": "cd webdriver-ts && npm run compile",
1515
"install-webdriver-ts": "cd webdriver-ts && npm install && npm run compile",
1616
"install-webdriver-ts-results": "cd webdriver-ts-results && npm install",
1717
"install-local": "npm run install-webdriver-ts && npm run install-webdriver-ts-results",
18-
"docker-build-image": "docker build -t js-framework-benchmark-ubuntu -f Dockerfile .",
19-
"docker-start": "cross-env-shell docker run --rm -d -p 8080:8080 --name js-framework-benchmark --volume ${INIT_CWD}:/src --volume js-framework-benchmark:/build js-framework-benchmark-ubuntu",
20-
"docker-stop": "docker stop js-framework-benchmark",
21-
"docker-sync": "docker exec -it js-framework-benchmark rsync -avC --exclude /index.html --exclude /framework/**/dist --exclude /webdriver-ts*/dist --exclude node_modules --exclude /webdriver-ts/results*/ /src/ /build/",
22-
"docker-sync-package-lock-back": "docker exec -it js-framework-benchmark bash sync-package-lock.sh",
23-
"docker-build-frameworks": "npm run docker-sync && docker exec -it js-framework-benchmark npm install && docker exec -it js-framework-benchmark node rebuild-all.js --ci --docker --",
24-
"docker-build-frameworks-non-ci": "npm run docker-sync && docker exec -it js-framework-benchmark npm install && docker exec -it js-framework-benchmark node rebuild-all.js --docker --",
25-
"docker-install-webdriver": "npm run docker-sync && docker exec -it js-framework-benchmark npm run install-local",
26-
"docker-create-index": "docker exec -it -w /build/webdriver-ts js-framework-benchmark npm run index",
27-
"docker-rebuild": "docker exec -it js-framework-benchmark cp /src/rebuild-single.js /build/ && docker exec -it js-framework-benchmark node rebuild-single.js --docker",
28-
"docker-rebuild-ci": "docker exec -it js-framework-benchmark cp /src/rebuild-single.js /build/ && docker exec -it js-framework-benchmark node rebuild-single.js --ci --docker",
29-
"docker-bench": "docker exec -it -w /build/webdriver-ts js-framework-benchmark node dist/benchmarkRunner.js --headless",
30-
"docker-results": "docker exec -it -w /build/webdriver-ts js-framework-benchmark npm run results",
31-
"docker-shell": "docker exec -it js-framework-benchmark /bin/bash",
32-
"docker-dev-webdriver": "npm run docker-sync && docker exec -it -w /build/webdriver-ts js-framework-benchmark npm run compile && docker exec -it -w /build/webdriver-ts js-framework-benchmark node dist/benchmarkRunner.js --headless",
33-
"lerna-bootstrap": "lerna bootstrap",
34-
"lerna-build-all": "lerna run build-prod",
35-
"docker-lerna-bootstrap": "npm run docker-sync && docker exec -it js-framework-benchmark npm run lerna-bootstrap",
36-
"docker-lerna-build-all": "npm run docker-sync && docker exec -it js-framework-benchmark npm run lerna-build-all"
18+
"docker-build-image": "podman build -t js-framework-benchmark-ubuntu -f Dockerfile .",
19+
"docker-start": "cross-env-shell podman run --rm -d -p 8080:8080 --name js-framework-benchmark --ipc=host -v /dev/shm:/dev/shm --volume ${INIT_CWD}:/src --volume js-framework-benchmark:/build js-framework-benchmark-ubuntu",
20+
"docker-stop": "podman stop js-framework-benchmark",
21+
"docker-sync": "podman exec -it js-framework-benchmark rsync -avC --exclude /index.html --exclude /framework/**/dist --exclude /webdriver-ts*/dist --exclude node_modules --exclude /webdriver-ts/results*/ /src/ /build/",
22+
"docker-sync-package-lock-back": "podman exec -it js-framework-benchmark bash sync-package-lock.sh",
23+
"docker-build-frameworks": "npm run docker-sync && podman exec -it js-framework-benchmark npm install && podman exec -it js-framework-benchmark node rebuild-all.js --ci --docker --",
24+
"docker-build-frameworks-non-ci": "npm run docker-sync && podman exec -it js-framework-benchmark npm install && podman exec -it js-framework-benchmark node rebuild-all.js --docker --",
25+
26+
"rebuild": "node rebuild-single.js --",
27+
"rebuild-ci": "node rebuild-single.js -- --ci",
28+
"docker-rebuild": "node rebuild-single.js -- --docker",
29+
"docker-rebuild-ci": "node rebuild-single.js -- --ci --docker",
30+
31+
"docker-shell": "podman exec -it js-framework-benchmark /bin/bash"
3732
},
3833
"keywords": [
3934
"benchmark",
@@ -62,6 +57,5 @@
6257
"yargs": "^15.3.1"
6358
},
6459
"devDependencies": {
65-
"lerna": "^3.22.1"
6660
}
6761
}

rebuild-build-single.js

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
var _ = require('lodash');
2+
var exec = require('child_process').execSync;
3+
var fs = require('fs');
4+
var path = require('path');
5+
var yargs = require('yargs');
6+
const rimraf = require('rimraf');
7+
8+
let args = process.argv.length <= 2 ? [] : process.argv.slice(2, process.argv.length);
9+
10+
// Use npm ci or npm install ?
11+
let ci = args.includes("--ci");
12+
// Copy package-lock back for docker build or build locally?
13+
let docker = args.includes("--docker");
14+
15+
let frameworks = args.filter(a => !a.startsWith("--"));
16+
17+
console.log("rebuild-build-single.js started: args", args, "ci", ci, "docker", docker, "frameworks", frameworks);
18+
19+
/*
20+
rebuild-single.js [--ci] [--docker] [keyed/framework1 ... non-keyed/frameworkN]
21+
22+
This script rebuilds a single framework
23+
By default it rebuilds from scratch, deletes all package.json and package-lock.json files
24+
and invokes npm install and npm run build-prod for the benchmark
25+
26+
With argument --ci it rebuilds using the package-lock.json dependencies, i.e.
27+
it calls npm ci and npm run build-prod for the benchmark
28+
29+
Pass list of frameworks
30+
*/
31+
32+
33+
if (frameworks.length == 0) {
34+
console.log("ERROR: Missing arguments. Command: docker-rebuild keyed/framework1 non-keyed/framework2 ...");
35+
process.exit(1);
36+
}
37+
38+
for (f of frameworks) {
39+
let components = f.split("/");
40+
if (components.length != 2) {
41+
console.log(`ERROR: invalid name ${f}. It must contain exactly one /.`)
42+
process.exit(1);
43+
}
44+
let [keyed, name] = components;
45+
let path = `frameworks/${keyed}/${name}`
46+
if (docker) {
47+
if (fs.existsSync(path)) {
48+
console.log("deleting folder ", path);
49+
exec(`rm -r ${path}`);
50+
}
51+
let rsync_cmd = `rsync -avC --exclude elm-stuff --exclude dist --exclude output ${ci ? '' : '--exclude package-lock.json'} --exclude tmp --exclude node_modules --exclude bower_components /src/frameworks/${keyed}/${name} /build/frameworks/${keyed}/`;
52+
console.log(rsync_cmd);
53+
exec(rsync_cmd,
54+
{
55+
stdio: 'inherit'
56+
});
57+
}
58+
let rm_cmd = `rm -rf ${ci ? '' : 'package-lock.json'} yarn.lock dist elm-stuff bower_components node_modules output`;
59+
console.log(rm_cmd);
60+
exec(rm_cmd, {
61+
cwd: path,
62+
stdio: 'inherit'
63+
});
64+
let install_cmd = `npm ${ci ? 'ci' : 'install'} && npm run build-prod`;
65+
console.log(install_cmd);
66+
exec(install_cmd, {
67+
cwd: path,
68+
stdio: 'inherit'
69+
});
70+
if (docker) {
71+
let packageLockPath = path + "/package-lock.json";
72+
fs.copyFileSync(packageLockPath, "/src/" + packageLockPath)
73+
}
74+
}
75+
76+
console.log("rebuild-build-single.js finished: Build finsished sucessfully!");

rebuild-check-single.js

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
var _ = require('lodash');
2+
var exec = require('child_process').execSync;
3+
var fs = require('fs');
4+
var path = require('path');
5+
var yargs = require('yargs');
6+
const rimraf = require('rimraf');
7+
8+
let args = process.argv.length <= 2 ? [] : process.argv.slice(2, process.argv.length);
9+
10+
let frameworks = args.filter(a => !a.startsWith("--"));
11+
12+
console.log("rebuild-check-single.js started: args", args, "frameworks", frameworks);
13+
14+
/*
15+
rebuild-single.js [--ci] [--docker] [keyed/framework1 ... non-keyed/frameworkN]
16+
17+
This script rebuilds a single framework
18+
By default it rebuilds from scratch, deletes all package.json and package-lock.json files
19+
and invokes npm install and npm run build-prod for the benchmark
20+
21+
With argument --ci it rebuilds using the package-lock.json dependencies, i.e.
22+
it calls npm ci and npm run build-prod for the benchmark
23+
24+
Pass list of frameworks
25+
*/
26+
27+
try {
28+
let frameworkNames = frameworks.join(" ");
29+
let bench_cmd = 'npm run bench -- --headless true --smoketest true ' + frameworkNames;
30+
console.log(bench_cmd);
31+
exec(bench_cmd, {
32+
cwd: 'webdriver-ts',
33+
stdio: 'inherit'
34+
});
35+
36+
let keyed_cmd = 'npm run isKeyed -- --headless true ' + frameworkNames;
37+
console.log(keyed_cmd);
38+
exec(keyed_cmd, {
39+
cwd: 'webdriver-ts',
40+
stdio: 'inherit'
41+
});
42+
43+
console.log("rebuild-check-single.js finished");
44+
console.log("All checks are fine!");
45+
console.log("======> Please rerun the benchmark: npm run bench ", frameworkNames);
46+
} catch (e) {
47+
console.log(`rebuild-check-single failed for ${frameworks.join(" ")}`);
48+
process.exit(-1);
49+
}

rebuild-single.js

+24-57
Original file line numberDiff line numberDiff line change
@@ -29,67 +29,34 @@ it calls npm ci and npm run build-prod for the benchmark
2929
Pass list of frameworks
3030
*/
3131

32-
33-
if (frameworks.length == 0) {
34-
console.log("ERROR: Missing arguments. Command: docker-rebuild keyed/framework1 non-keyed/framework2 ...");
35-
process.exit(1);
36-
}
37-
38-
for (f of frameworks) {
39-
let components = f.split("/");
40-
if (components.length != 2) {
41-
console.log(`ERROR: invalid name ${f}. It must contain exactly one /.`)
32+
try {
33+
if (frameworks.length == 0) {
34+
console.log("ERROR: Missing arguments. Command: docker-rebuild keyed/framework1 non-keyed/framework2 ...");
4235
process.exit(1);
4336
}
44-
let [keyed, name] = components;
45-
let path = `frameworks/${keyed}/${name}`
46-
if (fs.existsSync(path)) {
47-
console.log("deleting folder ", path);
48-
exec(`rm -r ${path}`);
37+
38+
if (docker) {
39+
let build_cmd = `podman exec -it js-framework-benchmark cp /src/rebuild-build-single.js /build/ && podman exec -it js-framework-benchmark node rebuild-build-single.js ${args.join(" ")}`;
40+
console.log(build_cmd);
41+
exec(build_cmd,
42+
{
43+
stdio: 'inherit'
44+
});
45+
} else {
46+
let build_cmd = `node rebuild-build-single.js ${args.join(" ")}`;
47+
console.log(build_cmd);
48+
exec(build_cmd,
49+
{
50+
stdio: 'inherit'
51+
});
4952
}
50-
let rsync_cmd = `rsync -avC --exclude elm-stuff --exclude dist --exclude output ${ci ? '' : '--exclude package-lock.json'} --exclude tmp --exclude node_modules --exclude bower_components /src/frameworks/${keyed}/${name} /build/frameworks/${keyed}/`;
51-
console.log(rsync_cmd);
52-
exec(rsync_cmd,
53+
54+
let check_cmd = `node rebuild-check-single.js ${args.join(" ")}`;
55+
console.log(check_cmd);
56+
exec(check_cmd,
5357
{
5458
stdio: 'inherit'
5559
});
56-
let rm_cmd = `rm -rf ${ci ? '' : 'package-lock.json'} yarn.lock dist elm-stuff bower_components node_modules output`;
57-
console.log(rm_cmd);
58-
exec(rm_cmd, {
59-
cwd: path,
60-
stdio: 'inherit'
61-
});
62-
let install_cmd = `npm ${ci ? 'ci' : 'install'} && npm run build-prod`;
63-
console.log(install_cmd);
64-
exec(install_cmd, {
65-
cwd: path,
66-
stdio: 'inherit'
67-
});
68-
if (docker) {
69-
let packageLockPath = path + "/package-lock.json";
70-
fs.copyFileSync(packageLockPath, "/src/" + packageLockPath)
71-
}
60+
} catch (e) {
61+
console.log(`ERROR: Rebuilding ${args.join(" ")} was not successful`);
7262
}
73-
74-
let frameworkNames = frameworks.join(" ");
75-
let bench_cmd = 'npm run bench -- --headless --noResults --exitOnError true --count 1 ' + frameworkNames;
76-
console.log(bench_cmd);
77-
exec(bench_cmd, {
78-
cwd: 'webdriver-ts',
79-
stdio: 'inherit'
80-
});
81-
82-
let keyed_cmd = 'npm run isKeyed -- --headless ' + frameworkNames;
83-
console.log(keyed_cmd);
84-
exec(keyed_cmd, {
85-
cwd: 'webdriver-ts',
86-
stdio: 'inherit'
87-
});
88-
89-
exec('npm run index', {
90-
cwd: 'webdriver-ts',
91-
stdio: 'inherit'
92-
});
93-
94-
console.log("All checks are fine!");
95-
console.log("======> Please rerun the benchmark: npm run bench ", frameworkNames);

results-ui/package.json

-26
This file was deleted.

0 commit comments

Comments
 (0)