From 7872c15620a7283c8abd96f4a1152c7cf9c011ea Mon Sep 17 00:00:00 2001 From: Dzmitry Lemechko Date: Wed, 20 Nov 2024 10:09:44 +0100 Subject: [PATCH] [ftr][deployment-agnostic] move APM tests in its own config file (#200562) ## Summary Part of #199182 With great progress of #193245 the number of tests in Observability deployment-agnostic config files is growing and so does config run time by reaching **30** minutes. As we try to keep pipeline runtime reasonable, this PR adds a new configs `oblt.apm.stateful.config.ts` and `oblt.apm.serverless.config.ts` that load only APM-related tests from https://github.com/elastic/kibana/blob/main/x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts It should help to speed up execution, we will double check config runtime when APM test migration is completed. For reviewers: no extra work is expected from Oblt teams if new tests are still imported in `x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/index.ts` --- .buildkite/ftr_oblt_serverless_configs.yml | 1 + .buildkite/ftr_oblt_stateful_configs.yml | 1 + .../configs/serverless/oblt.apm.index.ts | 16 ++++++++++++++++ .../serverless/oblt.apm.serverless.config.ts | 16 ++++++++++++++++ .../configs/serverless/oblt.index.ts | 5 ++--- .../configs/stateful/oblt.apm.index.ts | 14 ++++++++++++++ .../configs/stateful/oblt.apm.stateful.config.ts | 15 +++++++++++++++ .../configs/stateful/oblt.index.ts | 5 ++--- 8 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.index.ts create mode 100644 x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.serverless.config.ts create mode 100644 x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.index.ts create mode 100644 x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.stateful.config.ts diff --git a/.buildkite/ftr_oblt_serverless_configs.yml b/.buildkite/ftr_oblt_serverless_configs.yml index fbf0406f37be4..ee954577fc758 100644 --- a/.buildkite/ftr_oblt_serverless_configs.yml +++ b/.buildkite/ftr_oblt_serverless_configs.yml @@ -27,3 +27,4 @@ enabled: - x-pack/test_serverless/functional/test_suites/observability/config.screenshots.ts # serverless config files that run deployment-agnostic tests - x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.serverless.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.serverless.config.ts diff --git a/.buildkite/ftr_oblt_stateful_configs.yml b/.buildkite/ftr_oblt_stateful_configs.yml index 7655ce6de38cf..6cad97ecc4456 100644 --- a/.buildkite/ftr_oblt_stateful_configs.yml +++ b/.buildkite/ftr_oblt_stateful_configs.yml @@ -52,3 +52,4 @@ enabled: - x-pack/test/functional/apps/apm/config.ts # stateful configs that run deployment-agnostic tests - x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.stateful.config.ts + - x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.stateful.config.ts diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.index.ts b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.index.ts new file mode 100644 index 0000000000000..1bd5cfda82a11 --- /dev/null +++ b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.index.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DeploymentAgnosticFtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) { + describe('Serverless Observability - Deployment-agnostic APM API integration tests', function () { + this.tags(['esGate']); + + // load new oblt APM-only deployment-agnostic test here + loadTestFile(require.resolve('../../apis/observability/apm')); + }); +} diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.serverless.config.ts b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.serverless.config.ts new file mode 100644 index 0000000000000..9d4d8b89a7e6f --- /dev/null +++ b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.apm.serverless.config.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createServerlessTestConfig } from '../../default_configs/serverless.config.base'; + +export default createServerlessTestConfig({ + serverlessProject: 'oblt', + testFiles: [require.resolve('./oblt.apm.index.ts')], + junit: { + reportName: 'Serverless Observability - Deployment-agnostic APM API Integration Tests', + }, +}); diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.index.ts b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.index.ts index 6353f871a8078..abd875f8c17cf 100644 --- a/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.index.ts +++ b/x-pack/test/api_integration/deployment_agnostic/configs/serverless/oblt.index.ts @@ -7,10 +7,10 @@ import { DeploymentAgnosticFtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) { - describe('Serverless Observability - Deployment-agnostic api integration tests', function () { + describe('Serverless Observability - Deployment-agnostic API integration tests', function () { this.tags(['esGate']); - // load new oblt and platform deployment-agnostic test here + // load new oblt (except APM) and platform deployment-agnostic test here loadTestFile(require.resolve('../../apis/console')); loadTestFile(require.resolve('../../apis/core')); loadTestFile(require.resolve('../../apis/management')); @@ -20,6 +20,5 @@ export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) loadTestFile(require.resolve('../../apis/painless_lab')); loadTestFile(require.resolve('../../apis/saved_objects_management')); loadTestFile(require.resolve('../../apis/observability/slo')); - loadTestFile(require.resolve('../../apis/observability/apm')); }); } diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.index.ts b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.index.ts new file mode 100644 index 0000000000000..9e7869bfacde0 --- /dev/null +++ b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DeploymentAgnosticFtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) { + describe('Stateful Observability - Deployment-agnostic APM API integration tests', () => { + loadTestFile(require.resolve('../../apis/observability/apm')); + }); +} diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.stateful.config.ts b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.stateful.config.ts new file mode 100644 index 0000000000000..e4eca8228aa18 --- /dev/null +++ b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.apm.stateful.config.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createStatefulTestConfig } from '../../default_configs/stateful.config.base'; + +export default createStatefulTestConfig({ + testFiles: [require.resolve('./oblt.apm.index.ts')], + junit: { + reportName: 'Stateful Observability - Deployment-agnostic APM API Integration Tests', + }, +}); diff --git a/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.index.ts b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.index.ts index c5a3ad90f81f4..4f21d708d4186 100644 --- a/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.index.ts +++ b/x-pack/test/api_integration/deployment_agnostic/configs/stateful/oblt.index.ts @@ -8,12 +8,11 @@ import { DeploymentAgnosticFtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: DeploymentAgnosticFtrProviderContext) { - describe('apis', () => { - // load new oblt deployment-agnostic test here + describe('Stateful Observability - Deployment-agnostic API integration tests', () => { + // load new oblt (except APM) deployment-agnostic tests here loadTestFile(require.resolve('../../apis/observability/alerting')); loadTestFile(require.resolve('../../apis/observability/dataset_quality')); loadTestFile(require.resolve('../../apis/observability/slo')); loadTestFile(require.resolve('../../apis/observability/infra')); - loadTestFile(require.resolve('../../apis/observability/apm')); }); }