mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 18:51:07 -04:00
# Backport This will backport the following commits from `main` to `9.0`: - [[kbn-test] check config duplicate entries (#219089)](https://github.com/elastic/kibana/pull/219089) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Dzmitry Lemechko","email":"dzmitry.lemechko@elastic.co"},"sourceCommit":{"committedDate":"2025-04-24T17:22:36Z","message":"[kbn-test] check config duplicate entries (#219089)\n\n## Summary\n\n@gsoldevila noticed that we have the same FTR configs listed in\ndifferent manifest file. It means that we are running the same configs\nmultiple time and this PR fixes it.\n\nPR update `scripts/check_ftr_configs.js` to check for duplicate entries\nin manifests in advance and throw an error asking developer to remove\nduplicates:\n\n```\n[kbn-test/check-config-duplicate-entries][~/github/kibana]$ node scripts/check_ftr_configs.js\nERROR Duplicate FTR config entries detected. Please remove the duplicates:\n\n Config path: x-pack/test/api_integration/apis/logs_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n\n Config path: x-pack/test/api_integration/apis/metrics_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n \n ...\n```\n\nCheck verified in\n[CI](https://buildkite.com/elastic/kibana-pull-request/builds/295779#019667cf-bff5-4ea0-b0f2-7044125fe08e)","sha":"91b0988c2c1093a0c23c59e53eba43c236d840a8","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:version","v9.1.0","v8.19.0","v9.0.1"],"title":"[kbn-test] check config duplicate entries","number":219089,"url":"https://github.com/elastic/kibana/pull/219089","mergeCommit":{"message":"[kbn-test] check config duplicate entries (#219089)\n\n## Summary\n\n@gsoldevila noticed that we have the same FTR configs listed in\ndifferent manifest file. It means that we are running the same configs\nmultiple time and this PR fixes it.\n\nPR update `scripts/check_ftr_configs.js` to check for duplicate entries\nin manifests in advance and throw an error asking developer to remove\nduplicates:\n\n```\n[kbn-test/check-config-duplicate-entries][~/github/kibana]$ node scripts/check_ftr_configs.js\nERROR Duplicate FTR config entries detected. Please remove the duplicates:\n\n Config path: x-pack/test/api_integration/apis/logs_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n\n Config path: x-pack/test/api_integration/apis/metrics_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n \n ...\n```\n\nCheck verified in\n[CI](https://buildkite.com/elastic/kibana-pull-request/builds/295779#019667cf-bff5-4ea0-b0f2-7044125fe08e)","sha":"91b0988c2c1093a0c23c59e53eba43c236d840a8"}},"sourceBranch":"main","suggestedTargetBranches":["8.19","9.0"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/219089","number":219089,"mergeCommit":{"message":"[kbn-test] check config duplicate entries (#219089)\n\n## Summary\n\n@gsoldevila noticed that we have the same FTR configs listed in\ndifferent manifest file. It means that we are running the same configs\nmultiple time and this PR fixes it.\n\nPR update `scripts/check_ftr_configs.js` to check for duplicate entries\nin manifests in advance and throw an error asking developer to remove\nduplicates:\n\n```\n[kbn-test/check-config-duplicate-entries][~/github/kibana]$ node scripts/check_ftr_configs.js\nERROR Duplicate FTR config entries detected. Please remove the duplicates:\n\n Config path: x-pack/test/api_integration/apis/logs_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n\n Config path: x-pack/test/api_integration/apis/metrics_ui/config.ts\n Found in manifests:\n .buildkite/ftr_platform_stateful_configs.yml\n .buildkite/ftr_oblt_stateful_configs.yml\n \n ...\n```\n\nCheck verified in\n[CI](https://buildkite.com/elastic/kibana-pull-request/builds/295779#019667cf-bff5-4ea0-b0f2-7044125fe08e)","sha":"91b0988c2c1093a0c23c59e53eba43c236d840a8"}},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"9.0","label":"v9.0.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> Co-authored-by: Dzmitry Lemechko <dzmitry.lemechko@elastic.co>
This commit is contained in:
parent
ed0968df75
commit
e7b8b3fb42
7 changed files with 33 additions and 18 deletions
|
@ -24,7 +24,6 @@ enabled:
|
|||
- x-pack/test/api_integration/apis/logs_ui/config.ts
|
||||
- x-pack/test/api_integration/apis/logs_shared/config.ts
|
||||
- x-pack/test/api_integration/apis/metrics_ui/config.ts
|
||||
- x-pack/test/api_integration/apis/osquery/config.ts
|
||||
- x-pack/test/api_integration/apis/synthetics/config.ts
|
||||
- x-pack/test/api_integration/apis/uptime/config.ts
|
||||
- x-pack/test/api_integration/apis/entity_manager/config.ts
|
||||
|
|
|
@ -155,23 +155,19 @@ enabled:
|
|||
- x-pack/test/api_integration/apis/grok_debugger/config.ts
|
||||
- x-pack/test/api_integration/apis/kibana/config.ts
|
||||
- x-pack/test/api_integration/apis/lists/config.ts
|
||||
- x-pack/test/api_integration/apis/logs_ui/config.ts
|
||||
- x-pack/test/api_integration/apis/logstash/config.ts
|
||||
- x-pack/test/api_integration/apis/management/config.ts
|
||||
- x-pack/test/api_integration/apis/management/index_management/disabled_data_enrichers/config.ts
|
||||
- x-pack/test/api_integration/apis/maps/config.ts
|
||||
- x-pack/test/api_integration/apis/metrics_ui/config.ts
|
||||
- x-pack/test/api_integration/apis/ml/config.ts
|
||||
- x-pack/test/api_integration/apis/monitoring/config.ts
|
||||
- x-pack/test/api_integration/apis/monitoring_collection/config.ts
|
||||
- x-pack/test/api_integration/apis/osquery/config.ts
|
||||
- x-pack/test/api_integration/apis/search/config.ts
|
||||
- x-pack/test/api_integration/apis/searchprofiler/config.ts
|
||||
- x-pack/test/api_integration/apis/security/config.ts
|
||||
- x-pack/test/api_integration/apis/spaces/config.ts
|
||||
- x-pack/test/api_integration/apis/stats/config.ts
|
||||
- x-pack/test/api_integration/apis/status/config.ts
|
||||
- x-pack/test/api_integration/apis/synthetics/config.ts
|
||||
- x-pack/test/api_integration/apis/telemetry/config.ts
|
||||
- x-pack/test/api_integration/apis/transform/config.ts
|
||||
- x-pack/test/api_integration/apis/upgrade_assistant/config.ts
|
||||
|
|
|
@ -14,11 +14,6 @@ disabled:
|
|||
# Playwright
|
||||
- x-pack/test/security_solution_playwright/serverless_config.ts
|
||||
|
||||
# Serverless base config files
|
||||
- x-pack/test_serverless/api_integration/config.base.ts
|
||||
- x-pack/test_serverless/functional/config.base.ts
|
||||
- x-pack/test_serverless/shared/config.base.ts
|
||||
|
||||
# MKI only configs files
|
||||
- x-pack/test_serverless/functional/test_suites/security/config.mki_only.ts
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ disabled:
|
|||
- x-pack/test/security_solution_api_integration/config/ess/config.base.basic.ts
|
||||
- x-pack/test/security_solution_api_integration/config/ess/config.base.edr_workflows.trial.ts
|
||||
- x-pack/test/security_solution_api_integration/config/ess/config.base.edr_workflows.ts
|
||||
- x-pack/test/security_solution_api_integration/config/ess/config.base.basic.ts
|
||||
- x-pack/test/security_solution_api_integration/config/ess/config.base.trial.ts
|
||||
- x-pack/test/security_solution_endpoint/configs/config.base.ts
|
||||
- x-pack/test/security_solution_endpoint/config.base.ts
|
||||
|
@ -105,6 +104,7 @@ enabled:
|
|||
- x-pack/test/security_solution_endpoint/configs/endpoint.config.ts
|
||||
- x-pack/test/security_solution_endpoint/configs/integrations.config.ts
|
||||
- x-pack/test/api_integration/apis/cloud_security_posture/config.ts
|
||||
- x-pack/test/api_integration/apis/osquery/config.ts
|
||||
- x-pack/test/cloud_security_posture_api/config.ts
|
||||
- x-pack/test/cloud_security_posture_functional/config.ts
|
||||
- x-pack/test/cloud_security_posture_functional/config.agentless.ts
|
||||
|
|
|
@ -61,7 +61,8 @@ async function getConfigModule({
|
|||
throw error;
|
||||
}
|
||||
|
||||
const { allFtrConfigs, manifestPaths } = getAllFtrConfigsAndManifests();
|
||||
const { ftrConfigEntries, manifestPaths } = getAllFtrConfigsAndManifests();
|
||||
const allFtrConfigs = Array.from(ftrConfigEntries.keys());
|
||||
|
||||
if (
|
||||
primary &&
|
||||
|
|
|
@ -42,7 +42,7 @@ const getAllFtrConfigsManifests = () => {
|
|||
|
||||
export const getAllFtrConfigsAndManifests = () => {
|
||||
const manifestPaths = getAllFtrConfigsManifests();
|
||||
const allFtrConfigs: string[] = [];
|
||||
const ftrConfigEntries = new Map<string, string[]>();
|
||||
|
||||
for (const manifestRelPath of manifestPaths.all) {
|
||||
const manifest = JsYaml.load(
|
||||
|
@ -59,8 +59,13 @@ export const getAllFtrConfigsAndManifests = () => {
|
|||
return Path.resolve(REPO_ROOT, rel);
|
||||
});
|
||||
|
||||
allFtrConfigs.push(...ftrConfigsInManifest);
|
||||
for (const config of ftrConfigsInManifest) {
|
||||
if (!ftrConfigEntries.has(config)) {
|
||||
ftrConfigEntries.set(config, []);
|
||||
}
|
||||
ftrConfigEntries.get(config)!.push(manifestRelPath);
|
||||
}
|
||||
}
|
||||
|
||||
return { allFtrConfigs, manifestPaths };
|
||||
return { ftrConfigEntries, manifestPaths };
|
||||
};
|
||||
|
|
|
@ -29,6 +29,25 @@ const IGNORED_PATHS = [
|
|||
export async function runCheckFtrConfigsCli() {
|
||||
run(
|
||||
async ({ log }) => {
|
||||
const { ftrConfigEntries, manifestPaths } = getAllFtrConfigsAndManifests();
|
||||
const duplicateEntries = Array.from(ftrConfigEntries.entries()).filter(
|
||||
([, paths]) => paths.length > 1
|
||||
);
|
||||
|
||||
if (duplicateEntries.length > 0) {
|
||||
const errorMessage = duplicateEntries
|
||||
.map(
|
||||
([config, paths]) =>
|
||||
`Config path: ${Path.relative(REPO_ROOT, config)}\nFound in manifests:\n${paths.join(
|
||||
'\n'
|
||||
)}`
|
||||
)
|
||||
.join('\n\n');
|
||||
throw createFailError(
|
||||
`Duplicate FTR config entries detected. Please remove the duplicates:\n\n${errorMessage}`
|
||||
);
|
||||
}
|
||||
|
||||
const { stdout } = await execa('git', [
|
||||
'ls-tree',
|
||||
'--full-tree',
|
||||
|
@ -133,8 +152,7 @@ export async function runCheckFtrConfigsCli() {
|
|||
log.info(`${loadingConfigs.length} files were loaded as FTR configs for validation`);
|
||||
}
|
||||
|
||||
const { allFtrConfigs, manifestPaths } = getAllFtrConfigsAndManifests();
|
||||
|
||||
const allFtrConfigs = Array.from(ftrConfigEntries.keys());
|
||||
const invalid = possibleConfigs.filter((path) => !allFtrConfigs.includes(path));
|
||||
if (invalid.length) {
|
||||
const invalidList =
|
||||
|
@ -152,7 +170,8 @@ Serverless tests:\n${(manifestPaths.serverless as string[]).join('\n')}
|
|||
}
|
||||
},
|
||||
{
|
||||
description: 'Check that all FTR configs are listed in manifest files',
|
||||
description:
|
||||
'Check that all FTR configs are listed in manifest files and there are no duplicates',
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue