ci: do not run benchmark measurements in circleci (#34753)

Currently we run all benchmark perf tests in CircleCI. Since we do not
collect any results, we unnecessarily waste CI/RBE resources. Instead,
we should just not run benchmark perf tests in CI, but still run the
functionality e2e tests which ensure that benchmarks are not broken.

We can do this by splitting the perf and e2e tests into separate
files/targets.

PR Close #34753
This commit is contained in:
Paul Gschwendtner
2020-01-13 18:57:06 +01:00
committed by Andrew Kushnir
parent 669df70da5
commit 4d88b4bc26
33 changed files with 344 additions and 94 deletions

View File

@ -9,7 +9,7 @@ ts_library(
)
ts_library(
name = "perf_lib",
name = "perf_tests_lib",
testonly = 1,
srcs = ["largetable_perf.spec.ts"],
deps = [
@ -17,3 +17,14 @@ ts_library(
"@npm//protractor",
],
)
ts_library(
name = "e2e_tests_lib",
testonly = 1,
srcs = ["largetable.spec.ts"],
tsconfig = "//modules/benchmarks:tsconfig-e2e.json",
deps = [
"//modules/e2e_util",
"@npm//protractor",
],
)

View File

@ -1,5 +1,6 @@
load("//tools:defaults.bzl", "ts_devserver", "ts_library")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
@ -24,5 +25,11 @@ ts_devserver(
benchmark_test(
name = "perf",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)

View File

@ -1,5 +1,6 @@
load("//tools:defaults.bzl", "ts_devserver", "ts_library")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
@ -27,5 +28,11 @@ ts_devserver(
benchmark_test(
name = "perf",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)

View File

@ -1,5 +1,6 @@
load("//tools:defaults.bzl", "ts_devserver")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
@ -13,5 +14,11 @@ ts_devserver(
benchmark_test(
name = "perf",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)

View File

@ -0,0 +1,29 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {$} from 'protractor';
import {openBrowser, verifyNoBrowserErrors} from '../../../e2e_util/e2e_util';
describe('largetable benchmark', () => {
afterEach(verifyNoBrowserErrors);
it(`should render the table`, () => {
openBrowser({
url: '',
ignoreBrowserSynchronization: true,
params: [{name: 'cols', value: 5}, {name: 'rows', value: 5}],
});
$('#createDom').click();
expect($('#root').getText()).toContain('0/0');
$('#createDom').click();
expect($('#root').getText()).toContain('A/A');
$('#destroyDom').click();
expect($('#root').getText() as any).toEqual('');
});
});

View File

@ -7,8 +7,6 @@
*/
import {$} from 'protractor';
import {openBrowser} from '../../../e2e_util/e2e_util';
import {runBenchmark, verifyNoBrowserErrors} from '../../../e2e_util/perf_util';
interface Worker {
@ -48,20 +46,6 @@ describe('largetable benchmark perf', () => {
afterEach(verifyNoBrowserErrors);
it(`should render the table for ${testPackageName}`, () => {
openBrowser({
url: '',
ignoreBrowserSynchronization: true,
params: [{name: 'cols', value: 5}, {name: 'rows', value: 5}],
});
$('#createDom').click();
expect($('#root').getText()).toContain('0/0');
$('#createDom').click();
expect($('#root').getText()).toContain('A/A');
$('#destroyDom').click();
expect($('#root').getText() as any).toEqual('');
});
[CreateOnlyWorker, CreateAndDestroyWorker, UpdateWorker].forEach((worker) => {
describe(worker.id, () => {
it(`should run benchmark for ${testPackageName}`, done => {

View File

@ -1,5 +1,6 @@
load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
@ -40,5 +41,11 @@ ts_devserver(
benchmark_test(
name = "perf",
server = ":prodserver",
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":prodserver",
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)

View File

@ -1,5 +1,6 @@
load("//tools:defaults.bzl", "ng_module", "ts_devserver")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
package(default_visibility = ["//modules/benchmarks:__subpackages__"])
@ -36,5 +37,11 @@ ts_devserver(
benchmark_test(
name = "perf",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":devserver",
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)

View File

@ -2,6 +2,7 @@ package(default_visibility = ["//visibility:public"])
load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle", "ts_devserver")
load("//modules/benchmarks:benchmark_test.bzl", "benchmark_test")
load("//modules/benchmarks:e2e_test.bzl", "e2e_test")
ng_module(
name = "largetable_lib",
@ -43,5 +44,12 @@ benchmark_test(
name = "perf",
server = ":devserver",
tags = ["ivy-only"],
deps = ["//modules/benchmarks/src/largetable:perf_lib"],
deps = ["//modules/benchmarks/src/largetable:perf_tests_lib"],
)
e2e_test(
name = "e2e",
server = ":devserver",
tags = ["ivy-only"],
deps = ["//modules/benchmarks/src/largetable:e2e_tests_lib"],
)