[9.0] [Security Solution] Split prebuilt rule Cypress tests (#231150)#231490
[9.0] [Security Solution] Split prebuilt rule Cypress tests (#231150)#231490nikitaindik merged 4 commits intoelastic:9.0from
Conversation
banderror
left a comment
There was a problem hiding this comment.
@nikitaindik Compared every file change with the base PR, found a few potential issues. Please take a look.
.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml
Outdated
Show resolved
Hide resolved
.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml
Outdated
Show resolved
Hide resolved
.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml
Outdated
Show resolved
Hide resolved
.buildkite/pipelines/on_merge.yml
Outdated
| - command: .buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules_upgrade.sh | ||
| label: 'Serverless Rule Management - Prebuilt Rules Upgrade - Security Solution Cypress Tests' |
There was a problem hiding this comment.
Is this an unnecessary addition?
There was a problem hiding this comment.
I replaced a single security_serverless_rule_management_prebuilt_rules.sh with 4 new steps:
security_serverless_rule_management_prebuilt_rules_customization.shsecurity_serverless_rule_management_prebuilt_rules_installation.shsecurity_serverless_rule_management_prebuilt_rules_management.shsecurity_serverless_rule_management_prebuilt_rules_upgrade.sh
So this diff looks like what I expected.
There was a problem hiding this comment.
@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.
|
@banderror Thanks for reviewing! Indeed, there was some duplication in
|
**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
4597e25 to
ab3d310
Compare
banderror
left a comment
There was a problem hiding this comment.
Thank you @nikitaindik for working late hours to address the remaining issues. The updated backport LGTM 👍
💚 Build Succeeded
Metrics [docs]
History
|
Backport
This will backport the following commits from
mainto9.0:Questions ?
Please refer to the Backport tool documentation