Skip to content

Commit 2d9d699

Browse files
Merge branch 'main' into backfill-metrics
2 parents 1276f8c + d547856 commit 2d9d699

File tree

7,127 files changed

+390329
-207995
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

7,127 files changed

+390329
-207995
lines changed

.buildkite/ftr_platform_stateful_configs.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@ disabled:
66
# Base config files, only necessary to inform config finding script
77
- src/platform/test/functional/config.base.js
88
- src/platform/test/functional/firefox/config.base.ts
9-
- x-pack/test/functional/config.base.js
109
- x-pack/platform/test/functional/config.base.ts
1110
- x-pack/platform/test/localization/config.base.ts
1211
- src/platform/test/server_integration/config.base.js
1312
- x-pack/platform/test/functional_with_es_ssl/config.base.ts
14-
- x-pack/test/api_integration/config.ts
1513
- x-pack/platform/test/api_integration/config.ts
1614
- x-pack/platform/test/fleet_api_integration/config.base.ts
1715
- x-pack/platform/test/functional_basic/apps/ml/config.base.ts
@@ -146,6 +144,8 @@ enabled:
146144
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group4/config.ts
147145
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group5/config.ts
148146
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group6/config.ts
147+
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group7/config.ts
148+
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group8/config.ts
149149
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group3/config_with_schedule_circuit_breaker.ts
150150
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group2/config_non_dedicated_task_runner.ts
151151
- x-pack/platform/test/alerting_api_integration/security_and_spaces/group4/config_non_dedicated_task_runner.ts
@@ -172,6 +172,7 @@ enabled:
172172
- x-pack/platform/test/fleet_api_integration/config.fleet.ts
173173
- x-pack/platform/test/fleet_api_integration/config.package_policy.ts
174174
- x-pack/platform/test/fleet_api_integration/config.space_awareness.ts
175+
- x-pack/platform/test/fleet_api_integration/config.cloud_connector.ts
175176
- x-pack/platform/test/fleet_functional/config.ts
176177
- x-pack/platform/test/fleet_tasks/config.ts
177178
- x-pack/platform/test/ftr_apis/security_and_spaces/config.ts
@@ -333,6 +334,7 @@ enabled:
333334
- x-pack/platform/test/ui_capabilities/security_and_spaces/config.ts
334335
- x-pack/platform/test/ui_capabilities/spaces_only/config.ts
335336
- x-pack/platform/test/upgrade_assistant_integration/config.ts
337+
- x-pack/platform/test/reindex_service/config.ts
336338
- x-pack/platform/test/usage_collection/config.ts
337339
- x-pack/performance/journeys_e2e/aiops_log_rate_analysis.ts
338340
- x-pack/performance/journeys_e2e/ecommerce_dashboard.ts
@@ -399,7 +401,7 @@ enabled:
399401
- x-pack/platform/test/encrypted_saved_objects_api_integration/config.ts
400402
- x-pack/platform/test/fleet_multi_cluster/config.ts
401403
- x-pack/platform/test/monitoring_api_integration/config.ts
402-
- x-pack/platform/test/onechat_api_integration/config.ts
404+
- x-pack/platform/test/onechat_api_integration/configs/config.stateful.ts
403405
- x-pack/platform/test/plugin_api_integration/config.ts
404406
- x-pack/platform/test/saved_object_api_integration/security_and_spaces/config_basic.ts
405407
- x-pack/platform/test/saved_object_api_integration/security_and_spaces/config_trial.ts

.buildkite/ftr_security_serverless_configs.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ disabled:
1717
# Playwright
1818
- x-pack/solutions/security/test/security_solution_playwright/serverless_config.ts
1919

20+
# QA suites that are run out-of-band
21+
- x-pack/solutions/security/test/serverless/functional/configs/config.cloud_security_posture.cloud.ts
22+
2023
# MKI only configs files
2124
- x-pack/solutions/security/test/serverless/functional/configs/config.mki_only.ts
2225

@@ -84,7 +87,9 @@ enabled:
8487
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/rule_update/basic_license_essentials_tier/configs/serverless.config.ts
8588
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/configs/serverless_essentials_tier.config.ts
8689
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_disabled/configs/serverless_essentials_tier.config.ts
87-
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/configs/serverless.config.ts
90+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/customization/configs/serverless.config.ts
91+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/configs/serverless.config.ts
92+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_notifications/configs/serverless.config.ts
8893
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/diffable_rule_fields/common_fields/configs/serverless.config.ts
8994
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/diffable_rule_fields/type_specific_fields/configs/serverless.config.ts
9095
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/ml_disabled/configs/serverless_essentials_tier.config.ts

.buildkite/ftr_security_stateful_configs.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ disabled:
88
- x-pack/solutions/security/test/security_solution_api_integration/config/ess/config.base.frozen.trial.ts
99
- x-pack/solutions/security/test/security_solution_endpoint/configs/config.base.ts
1010
- x-pack/solutions/security/test/security_solution_endpoint/config.base.ts
11-
- x-pack/test/security_solution_endpoint_api_int/config.base.ts
1211
- x-pack/solutions/security/test/api_integration/config.ts
1312
- x-pack/solutions/security/test/functional/config.base.ts
1413

@@ -74,7 +73,9 @@ enabled:
7473
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/configs/edge_cases/ess_air_gapped_with_bundled_large_package.config.ts
7574
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_disabled/configs/ess_basic_license.config.ts
7675
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/common/configs/edge_cases/ess_trial_license.config.ts
77-
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/configs/ess.config.ts
76+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/customization/configs/ess.config.ts
77+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/configs/ess.config.ts
78+
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_notifications/configs/ess.config.ts
7879
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/diffable_rule_fields/common_fields/configs/ess.config.ts
7980
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/customization_enabled/upgrade_prebuilt_rules/diffable_rule_fields/type_specific_fields/configs/ess.config.ts
8081
- x-pack/solutions/security/test/security_solution_api_integration/test_suites/detections_response/rules_management/prebuilt_rules/ml_disabled/configs/ess_basic_license.config.ts

.buildkite/package-lock.json

Lines changed: 32 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.buildkite/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"js-yaml": "^4.1.0",
1616
"minimatch": "^5.0.1",
1717
"minimist": "^1.2.8",
18+
"p-limit": "^3.1.0",
1819
"tslib": "*"
1920
},
2021
"devDependencies": {
@@ -23,7 +24,7 @@
2324
"@types/jscodeshift": "^0.12.0",
2425
"@types/minimatch": "^3.0.5",
2526
"@types/minimist": "^1.2.5",
26-
"@types/node": "^15.12.2",
27+
"@types/node": "^22.17.1",
2728
"jest": "^30.0.3",
2829
"jscodeshift": "^17.1.2",
2930
"nock": "^12.0.2",

.buildkite/pipeline-utils/ci-stats/pick_test_group_run_order.ts

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,15 @@ export async function pickTestGroupRunOrder() {
573573
);
574574
}
575575

576+
// copied from src/platform/packages/shared/kbn-scout/src/config/discovery/search_configs.ts
577+
interface ScoutTestDiscoveryConfig {
578+
group: string;
579+
path: string;
580+
usesParallelWorkers: boolean;
581+
configs: string[];
582+
type: 'plugin' | 'package';
583+
}
584+
576585
export async function pickScoutTestGroupRunOrder(scoutConfigsPath: string) {
577586
const bk = new BuildkiteClient();
578587
const envFromlabels: Record<string, string> = collectEnvFromLabels();
@@ -581,33 +590,37 @@ export async function pickScoutTestGroupRunOrder(scoutConfigsPath: string) {
581590
throw new Error(`Scout configs file not found at ${scoutConfigsPath}`);
582591
}
583592

584-
const rawScoutConfigs = JSON.parse(Fs.readFileSync(scoutConfigsPath, 'utf-8'));
585-
const pluginsWithScoutConfigs: string[] = Object.keys(rawScoutConfigs);
593+
const rawScoutConfigs = JSON.parse(Fs.readFileSync(scoutConfigsPath, 'utf-8')) as Record<
594+
string,
595+
ScoutTestDiscoveryConfig
596+
>;
597+
const pluginsOrPackagesWithScoutTests: string[] = Object.keys(rawScoutConfigs);
586598

587-
if (pluginsWithScoutConfigs.length === 0) {
599+
if (pluginsOrPackagesWithScoutTests.length === 0) {
588600
// no scout configs found, nothing to need to upload steps
589601
return;
590602
}
591603

592-
const scoutGroups = pluginsWithScoutConfigs.map((plugin) => ({
593-
title: plugin,
594-
key: plugin,
595-
usesParallelWorkers: rawScoutConfigs[plugin].usesParallelWorkers,
596-
group: rawScoutConfigs[plugin].group,
604+
const scoutCiRunGroups = pluginsOrPackagesWithScoutTests.map((name) => ({
605+
label: `Scout: [ ${rawScoutConfigs[name].group} / ${name} ] ${rawScoutConfigs[name].type}`,
606+
key: name,
607+
agents: expandAgentQueue(rawScoutConfigs[name].usesParallelWorkers ? 'n2-8-spot' : 'n2-4-spot'),
608+
group: rawScoutConfigs[name].group,
597609
}));
598610

599611
// upload the step definitions to Buildkite
600612
bk.uploadSteps(
601613
[
602614
{
603615
group: 'Scout Configs',
604-
depends_on: ['build'],
605-
steps: scoutGroups.map(
606-
({ title, key, group, usesParallelWorkers }): BuildkiteStep => ({
607-
label: `Scout: [ ${group} / ${title} ] plugin`,
616+
key: 'scout-configs',
617+
depends_on: ['build_scout_tests'],
618+
steps: scoutCiRunGroups.map(
619+
({ label, key, group, agents }): BuildkiteStep => ({
620+
label,
608621
command: getRequiredEnv('SCOUT_CONFIGS_SCRIPT'),
609622
timeout_in_minutes: 60,
610-
agents: expandAgentQueue(usesParallelWorkers ? 'n2-8-spot' : 'n2-4-spot'),
623+
agents,
611624
env: {
612625
SCOUT_CONFIG_GROUP_KEY: key,
613626
SCOUT_CONFIG_GROUP_TYPE: group,

.buildkite/pipelines/chrome_forward_testing.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,21 @@ steps:
6161
- exit_status: '*'
6262
limit: 1
6363

64+
- command: .buildkite/scripts/steps/test/scout_test_run_builder.sh
65+
label: 'Scout Test Run Builder'
66+
agents:
67+
machineType: n2-standard-4
68+
key: build_scout_tests
69+
timeout_in_minutes: 10
70+
depends_on:
71+
- build
72+
env:
73+
SCOUT_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/scout_configs.sh'
74+
retry:
75+
automatic:
76+
- exit_status: '*'
77+
limit: 1
78+
6479
- command: .buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh
6580
label: 'Serverless Entity Analytics - Security Cypress Tests'
6681
agents:

.buildkite/pipelines/es_snapshots/verify.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,24 @@ steps:
5656
- exit_status: '*'
5757
limit: 1
5858

59+
- command: .buildkite/scripts/steps/test/scout_test_run_builder.sh
60+
label: 'Scout Test Run Builder'
61+
agents:
62+
image: family/kibana-ubuntu-2404
63+
imageProject: elastic-images-prod
64+
provider: gcp
65+
machineType: n2-standard-4
66+
key: build_scout_tests
67+
timeout_in_minutes: 10
68+
depends_on:
69+
- build
70+
env:
71+
SCOUT_CONFIGS_SCRIPT: '.buildkite/scripts/steps/test/scout_configs.sh'
72+
retry:
73+
automatic:
74+
- exit_status: '*'
75+
limit: 1
76+
5977
- command: .buildkite/scripts/steps/es_snapshots/trigger_promote.sh
6078
label: Trigger promotion
6179
timeout_in_minutes: 10

.buildkite/pipelines/flaky_tests/pipeline.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ if (Number.isNaN(concurrency)) {
3434
const BASE_JOBS = 1;
3535
const MAX_JOBS = 500;
3636

37+
function getScoutConfigGroupType(configPath: string): string | null {
38+
// Match platform paths: x-pack/platform/... or src/platform/...
39+
if (/^(x-pack|src)\/platform\//.test(configPath)) {
40+
return 'platform';
41+
}
42+
// Match solution paths: x-pack/solutions/<solution>/plugins/...
43+
const match = configPath.match(/^x-pack\/solutions\/([^/]+)\/plugins\//);
44+
if (match) {
45+
return match[1];
46+
}
47+
return null;
48+
}
49+
3750
function getTestSuitesFromJson(json: string) {
3851
const fail = (errorMsg: string) => {
3952
console.error('+++ Invalid test config provided');
@@ -55,6 +68,7 @@ function getTestSuitesFromJson(json: string) {
5568
const testSuites: Array<
5669
| { type: 'group'; key: string; count: number }
5770
| { type: 'ftrConfig'; ftrConfig: string; count: number }
71+
| { type: 'scoutConfig'; scoutConfig: string; count: number }
5872
> = [];
5973
for (const item of parsed) {
6074
if (typeof item !== 'object' || item === null) {
@@ -160,6 +174,33 @@ for (const testSuite of testSuites) {
160174
continue;
161175
}
162176

177+
if (testSuite.type === 'scoutConfig') {
178+
const usesParallelWorkers = testSuite.scoutConfig.endsWith('parallel.playwright.config.ts');
179+
const scoutConfigGroupType = getScoutConfigGroupType(testSuite.scoutConfig);
180+
181+
steps.push({
182+
command: `.buildkite/scripts/steps/test/scout_configs.sh`,
183+
env: {
184+
SCOUT_CONFIG: testSuite.scoutConfig,
185+
SCOUT_CONFIG_GROUP_TYPE: scoutConfigGroupType!,
186+
},
187+
key: `scout-suite-${suiteIndex++}`,
188+
label: `${testSuite.scoutConfig}`,
189+
parallelism: testSuite.count,
190+
concurrency,
191+
concurrency_group: process.env.UUID,
192+
concurrency_method: 'eager',
193+
agents: expandAgentQueue(usesParallelWorkers ? 'n2-8-spot' : 'n2-4-spot'),
194+
depends_on: 'build',
195+
timeout_in_minutes: 30,
196+
cancel_on_build_failing: true,
197+
retry: {
198+
automatic: [{ exit_status: '-1', limit: 3 }],
199+
},
200+
});
201+
continue;
202+
}
203+
163204
const [category, suiteName] = testSuite.key.split('/');
164205
switch (category) {
165206
case 'cypress':

0 commit comments

Comments
 (0)