Skip to content

[9.0] [Security Solution] Split prebuilt rule Cypress tests (#231150)#231490

Merged
nikitaindik merged 4 commits intoelastic:9.0from
nikitaindik:backport/9.0/pr-231150
Aug 13, 2025
Merged

[9.0] [Security Solution] Split prebuilt rule Cypress tests (#231150)#231490
nikitaindik merged 4 commits intoelastic:9.0from
nikitaindik:backport/9.0/pr-231150

Conversation

@nikitaindik
Copy link
Copy Markdown
Contributor

Backport

This will backport the following commits from main to 9.0:

Questions ?

Please refer to the Backport tool documentation

@nikitaindik nikitaindik added the backport This PR is a backport of another PR label Aug 12, 2025
@nikitaindik nikitaindik enabled auto-merge (squash) August 12, 2025 17:26
Copy link
Copy Markdown
Contributor

@banderror banderror left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nikitaindik Compared every file change with the base PR, found a few potential issues. Please take a look.

Comment on lines +286 to +287
- command: .buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules_upgrade.sh
label: 'Serverless Rule Management - Prebuilt Rules Upgrade - Security Solution Cypress Tests'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an unnecessary addition?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I replaced a single security_serverless_rule_management_prebuilt_rules.sh with 4 new steps:

  • security_serverless_rule_management_prebuilt_rules_customization.sh
  • security_serverless_rule_management_prebuilt_rules_installation.sh
  • security_serverless_rule_management_prebuilt_rules_management.sh
  • security_serverless_rule_management_prebuilt_rules_upgrade.sh

So this diff looks like what I expected.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nikitaindik My point is - why do we need to test against Serverless when merging to the 9.0 branch? Serverless tests should only run from main, as far as I'm concerned.

@nikitaindik
Copy link
Copy Markdown
Contributor Author

@banderror Thanks for reviewing! Indeed, there was some duplication in verify_es_serverless_image.yml. I pushed a fix.

on_merge.yml seems to be fine, though. Please take a look.

@nikitaindik nikitaindik requested a review from banderror August 12, 2025 21:43
**Part of epic: elastic#229688

## Summary
We have recently observed that some prebuilt detection rules in Cypress
tests run for over 60 minutes in CI pipelines. This leads to pipeline
timeouts. As a temporary measure `parallelism` was increased to 2
[recently](elastic#230969).

This PR divides the Cypress tests for prebuilt detection rules into four
separate groups to avoid hitting the 60m limit.

## Changes
- Divided prebuilt rules directory `prebuilt_rules` into 4 subdirs:
  - `installation`
  - `upgrade`
  - `customization`
- `management` (enabling/disabling, deletion, import and export of
rules)
- Added `yarn` commands and `bash` scripts to run tests from each
subdirectory
- Registered new groups in BuildKite pipelines (with `parallelism: 1`):
  - `pull_request/security_solution/rule_management.yml`
  - `on_merge.yml`
  - `chrome_forward_testing.yml`
  - `pointer_compression.yml`
  - `verify_es_serverless_image.yml` (Serverless tests only)
- Registered the new scripts in the Flaky Test Runner

## Running times in pull request pipeline
Link to this PR's run in pull request pipeline:
https://buildkite.com/elastic/kibana-pull-request/builds/327944

**Non-Serverless groups:**
- 13 min: Rule Management - Prebuilt Rules Customization - Security
Solution Cypress Tests
- 13 min: Rule Management - Prebuilt Rules Installation - Security
Solution Cypress Tests
- 10 min: Rule Management - Prebuilt Rules Management - Security
Solution Cypress Tests
- 31 min: Rule Management - Prebuilt Rules Upgrade - Security Solution
Cypress Tests

**Serverless groups:**
- 17 min: Serverless Rule Management - Prebuilt Rules Customization -
Security Solution Cypress Tests
- 16 min: Serverless Rule Management - Prebuilt Rules Installation -
Security Solution Cypress Tests
- 11 min: Serverless Rule Management - Prebuilt Rules Management -
Security Solution Cypress Tests
- 27 min: Serverless Rule Management - Prebuilt Rules Upgrade - Security
Solution Cypress Tests

Each group's running time is significantly below the 60-minute limit.

(cherry picked from commit 40b7b42)

# Conflicts:
#	.buildkite/pipelines/chrome_forward_testing.yml
#	.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml
#	.buildkite/pipelines/on_merge.yml
#	.buildkite/pipelines/pointer_compression.yml
#	.buildkite/pipelines/pull_request/security_solution/rule_management.yml
#	x-pack/solutions/security/test/security_solution_cypress/cypress/README.md
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/customization/revert_prebuilt_rule.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/customization/rule_customization.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/export_prebuilt_rule.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/import_prebuilt_rule.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_error_handling.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_notifications.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_via_fleet.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_with_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_error_handling.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_notifications.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_update_authorization.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_via_fleet.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_with_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/installation/install_workflow.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management/export_prebuilt_rule.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management/import_prebuilt_rule.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management/management.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/rule_customization.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_error_handling.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_notifications.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_with_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_with_preview_basic_license.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_without_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade/upgrade_without_preview_basic_license.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_error_handling.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_notifications.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_with_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_with_preview_basic_license.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_without_preview.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_without_preview_basic_license.cy.ts
#	x-pack/solutions/security/test/security_solution_cypress/package.json
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/export_prebuilt_rule.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/import_prebuilt_rule.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_error_handling.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_notifications.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_update_authorization.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_via_fleet.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_with_preview.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/install_workflow.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/management.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/rule_customization.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_error_handling.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_notifications.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_with_preview.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_with_preview_basic_license.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_without_preview.cy.ts
#	x-pack/test/security_solution_cypress/cypress/e2e/detection_response/rule_management/prebuilt_rules/upgrade_without_preview_basic_license.cy.ts
@nikitaindik nikitaindik force-pushed the backport/9.0/pr-231150 branch from 4597e25 to ab3d310 Compare August 12, 2025 21:44
Copy link
Copy Markdown
Contributor

@banderror banderror left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @nikitaindik for working late hours to address the remaining issues. The updated backport LGTM 👍

@nikitaindik nikitaindik merged commit dbb261f into elastic:9.0 Aug 13, 2025
9 checks passed
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

✅ unchanged

History

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport This PR is a backport of another PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants