kibana/.buildkite
Gloria Hornero c6b594cfee
[Security Solution] Enable Cypress Tests for AI4DSOC effort (#214776)
## Summary  
This PR establishes the baseline to execute Cypress tests in the new
`search_ai_lake` tier.

## Changes Introduced  
- All tests under
`x-pack/test/security_solution_cypress/cypress/e2e/ai4dsoc` will be
executed using the new tier by default.
- These tests will run as part of the PR process within the `Serverless
AI4DSOC - Security Solution Cypress Tests` execution.

## Adding a New Test  
To add a new test, follow these guidelines:  

- Read the
[README](x-pack/test/security_solution_cypress/cypress/e2e/ai4dsoc/README.md).
- Inside the `AI4DSOC` folder, we should have different subfolders
representing the various AI4DSOC functionalities.
- Each subfolder should have ownership by either an area team or the
developers actively working on it.
- Make sure that any functionality you want to be tested in the new tier
is added inside the `AI4DSOC` folder; otherwise, that functionality will
be tested using the complete tier.

## Running Tests Locally  
Run the tests with the following Yarn scripts from
`x-pack/test/security_solution_cypress`:

```sh
yarn cypress:open:ai4dsoc:serverless
```

Opens the Cypress UI with all tests in the `e2e/ai4dsoc` directory. This
also runs a mocked serverless environment using the `ai_soc` product
line and `search_ai_lake` tier by default.

```sh
yarn cypress:run:ai4dsoc:serverless
```

Runs all tests tagged as @serverless in the e2e/ai4dsoc directory in
headless mode using the ai_soc product line and search_ai_lake tier by
default.

## Key Considerations  
- All tests must have the `@serverless` tag to be executed as part of
the PR process.
- MKI is not yet supported for test execution.  
- The AI4DSOC Cypress tests will be executed each time there is a change
in one of its
[dependencies](https://github.com/elastic/kibana/blob/main/.buildkite/scripts/pipelines/pull_request/pipeline.ts).
- All tests are executed by default using the `platform_engineer` role.
- Temporary Ownership: The Security Engineering Productivity team will
own the entire AI4DSOC testing folder initially to ensure structure and
best practices. Once all teams understand the workflow, this ownership
will be removed.
- Execution Time: If test execution in a PR takes more than 45 minutes,
parallelism should be increased in the new
`.buildkite/pipelines/pull_request/security_solution/ai4dsoc.yml` file.

## Security Engineering Productivity Codeownership Responsibilities  
The Security Engineering Productivity team should ensure:  

- Best practices are followed.  
- All tests are placed inside a functionality subfolder.  
- Each functionality subfolder has designated code owners.  
- Tests include the `@serverless` label.  
- The execution of AI4DSOC tests does not exceed 45 minutes.    

## Follow-Up Tasks 
- Remove the dummy test (@tomsonpl feel free to delete it when you need
to add new tests to the navigation).
- Integrate tests into the periodic pipeline.  
- Add tests to the Kibana QA quality gate.  
- Update the README with MKI instructions once tests are added to the
periodic pipeline and Kibana QA quality gate.
- Clarify which roles will be used for the AI4DSOC effort and update the
tests accordingly.
2025-03-19 10:50:07 +01:00
..
hooks [Ops] Refactor env loading & fix agent-targeting rewrite (#178320) 2024-03-12 16:31:26 +01:00
pipeline-resource-definitions Update kibana-chrome-forward-testing.yml (#214961) 2025-03-18 13:02:41 +01:00
pipeline-utils [scout] add dynamic ci pipeline to run tests (#211797) 2025-03-11 18:15:08 +01:00
pipelines [Security Solution] Enable Cypress Tests for AI4DSOC effort (#214776) 2025-03-19 10:50:07 +01:00
scripts [Security Solution] Enable Cypress Tests for AI4DSOC effort (#214776) 2025-03-19 10:50:07 +01:00
.mocharc.json [CI] Move kibana-buildkite-library into kibana (#134787) 2022-06-28 13:19:05 -04:00
.npmrc [CI] Move kibana-buildkite-library into kibana (#134787) 2022-06-28 13:19:05 -04:00
disabled_jest_configs.json [Index Management] Fix broken jest tests (#173029) 2023-12-18 17:21:28 +01:00
ftr_base_serverless_configs.yml [FTR] support "deployment agnostic" api-integration tests (#189853) 2024-08-07 10:34:52 -05:00
ftr_configs_manifests.json [FTR] split configs by target into multiple manifest files (#187440) 2024-07-19 15:00:53 +02:00
ftr_oblt_serverless_configs.yml [Discover] Add context awareness telemetry tests for Observability profiles (#201310) 2024-11-28 20:12:26 -04:00
ftr_oblt_stateful_configs.yml [Profiling] Migrate Profiling Cypress tests to on_merge from on_merge_unsupported_ftrs (#206727) 2025-01-21 17:09:42 +01:00
ftr_platform_stateful_configs.yml [Cases] Improve unit test flakiness (#212489) 2025-03-14 17:17:13 +00:00
ftr_search_serverless_configs.yml Balance serverless test groups 2024-11-27 17:00:05 +02:00
ftr_search_stateful_configs.yml [FTR] split configs by target into multiple manifest files (#187440) 2024-07-19 15:00:53 +02:00
ftr_security_serverless_configs.yml [Security Solution] Enable Cypress Tests for AI4DSOC effort (#214776) 2025-03-19 10:50:07 +01:00
ftr_security_stateful_configs.yml [Security Solution] Enable prebuilt rules customization feature flag (#212761) 2025-03-11 22:45:49 +01:00
package-lock.json [ci] Click to deploy cloud (#205623) 2025-01-23 10:26:03 +01:00
package.json [ci] Click to deploy cloud (#205623) 2025-01-23 10:26:03 +01:00
pull_requests.json [ci] Click to deploy cloud (#205623) 2025-01-23 10:26:03 +01:00
README.md [CI] Move kibana-buildkite-library into kibana (#134787) 2022-06-28 13:19:05 -04:00
scout_ci_config.yml [scout] extend config-discovery with CI validator (#214403) 2025-03-18 21:24:54 +01:00
tsconfig.json fix(NA): adds pipeline-resource-definitions/fix-location-collection.ts into a tsconfig 2024-04-04 15:16:01 +01:00
tsconfig.test.json [CI] Move kibana-buildkite-library into kibana (#134787) 2022-06-28 13:19:05 -04:00

Kibana / Buildkite

Directory Structure

  • hooks - special directory used by Buildkite agents for hooks
  • pipeline-utils - Shared TypeScript utils for use in pipeline scripts
  • pipelines - contains pipeline definitions
  • scripts/common - scripts that get sourced by other scripts to set environment variables or import shared functions
  • scripts/lifecycle - general scripts for tasks that run before or after individual steps or the entire build
  • scripts/steps - scripts that define something that will run for a step defined in a pipeline
  • scripts/* - all other scripts are building blocks that make up the tasks in pipelines. They may be run by other scripts, but should not be sourced