mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
[Security] Split quality gate security solution pipelines to add more granularity. (#179145)
This PR aims to deprecate the old all in one pipeline for kibana serverless security solution cypress and split it into one pipeline per team to add more granularity. We need to split the pipelines and then add as well one Test suite per team. All this PR does is the split into multiple pipelines, one per team, with their relevant test suite in buildkite: - Detections Engine - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-detection-engine) - Entity Analytics - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-entity-analytics) - Explore - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-explore) - Gen AI - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-gen-ai) - Investigations - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-investigations) - Rule management - [Buildkite Test Suite](https://buildkite.com/organizations/elastic/analytics/suites/serverless-mki-cypress-rule-management) Relevant Tickets: - https://github.com/elastic/security-team/issues/8903 - https://github.com/elastic/security-team/issues/8801 --------- Co-authored-by: Alex Szabo <alex.szabo@elastic.co>
This commit is contained in:
parent
e05c2ee320
commit
b81d5a9a42
18 changed files with 553 additions and 170 deletions
|
@ -7,4 +7,10 @@ spec:
|
|||
type: url
|
||||
targets:
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/kibana-migration-staging.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-explore.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-investigations.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-rule-management.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-detection-engine.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-gen-ai.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/security-solution-quality-gate/kibana-serverless-security-solution-quality-gate-entity-analytics.yml
|
||||
- https://github.com/elastic/kibana/blob/main/.buildkite/pipeline-resource-definitions/kibana-serverless-release.yml
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-detection-engine
|
||||
description: "[MKI] Executes Cypress tests for the Detection Engine team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Detection Engine"
|
||||
description: "[MKI] Executes Cypress tests for the Detection Engine team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_detection_engine.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-entity-analytics
|
||||
description: "[MKI] Executes Cypress tests for the Entity Analytics team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Entity Analytics"
|
||||
description: "[MKI] Executes Cypress tests for the Entity Analytics team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_entity_analytics.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-explore
|
||||
description: "[MKI] Executes Cypress tests for the Explore team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Explore"
|
||||
description: "[MKI] Executes Cypress tests for the Explore team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_explore.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-gen-ai
|
||||
description: "[MKI] Executes Cypress tests for the Gen AI team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Gen Ai"
|
||||
description: "[MKI] Executes Cypress tests for the Gen AI team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_gen_ai.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-investigations
|
||||
description: "[MKI] Executes Cypress tests for the Investigations team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Investigations"
|
||||
description: "[MKI] Executes Cypress tests for the Investigations team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_investigations.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -0,0 +1,33 @@
|
|||
# yaml-language-server: $schema=https://gist.githubusercontent.com/elasticmachine/988b80dae436cafea07d9a4a460a011d/raw/rre.schema.json
|
||||
apiVersion: backstage.io/v1alpha1
|
||||
kind: Resource
|
||||
metadata:
|
||||
name: buildkite-pipeline-kibana-serverless-security-solution-quality-gate-rule-management
|
||||
description: "[MKI] Executes Cypress tests for the Rule Management team"
|
||||
spec:
|
||||
type: buildkite-pipeline
|
||||
owner: 'group:security-engineering-productivity'
|
||||
system: buildkite
|
||||
implementation:
|
||||
apiVersion: buildkite.elastic.dev/v1
|
||||
kind: Pipeline
|
||||
metadata:
|
||||
name: "Kibana / Serverless / Security Solution Quality Gate / Rule Management"
|
||||
description: "[MKI] Executes Cypress tests for the Rule Management team"
|
||||
spec:
|
||||
repository: elastic/kibana
|
||||
pipeline_file: .buildkite/pipelines/security_solution_quality_gate/mki_security_solution_rule_management.yml
|
||||
provider_settings:
|
||||
build_branches: false
|
||||
build_pull_requests: false
|
||||
publish_commit_status: false
|
||||
skip_pull_request_builds_for_existing_commits: false
|
||||
trigger_mode: none
|
||||
build_tags: false
|
||||
teams:
|
||||
kibana-operations:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
security-engineering-productivity:
|
||||
access_level: MANAGE_BUILD_AND_READ
|
||||
everyone:
|
||||
access_level: BUILD_AND_READ
|
|
@ -1,123 +0,0 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
queue: n2-16-spot
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- group: "Execute Tests"
|
||||
depends_on: build_image
|
||||
key: test_execution
|
||||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:explore
|
||||
label: 'Serverless MKI QA Explore - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:investigations
|
||||
label: 'Serverless MKI QA Investigations - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management
|
||||
label: 'Serverless MKI QA Rule Management - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management:prebuilt_rules
|
||||
label: 'Serverless MKI QA Rule Management - Prebuilt Rules - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine
|
||||
label: 'Serverless MKI QA Detection Engine - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine:exceptions
|
||||
label: 'Serverless MKI QA Detection Engine - Exceptions - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 6
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:ai_assistant
|
||||
label: 'Serverless MKI QA AI Assistant - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 1
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:entity_analytics
|
||||
label: 'Serverless MKI QA Entity Analytics - Security Solution Cypress Tests'
|
||||
agents:
|
||||
queue: n2-4-spot
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 2
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,71 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine
|
||||
label: 'Serverless MKI QA Detection Engine - Security Solution Cypress Tests'
|
||||
key: test_detection_engine
|
||||
depends_on: build_image
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-detection-engine"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:detection_engine:exceptions
|
||||
label: 'Serverless MKI QA Detection Engine - Exceptions - Security Solution Cypress Tests'
|
||||
key: test_detection_engine_exceptions
|
||||
depends_on: build_image
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-detection-engine"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 6
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,51 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:entity_analytics
|
||||
label: 'Serverless MKI QA Entity Analytics - Security Solution Cypress Tests'
|
||||
depends_on: build_image
|
||||
key: test_entity_analytics
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-entity-analytics"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 2
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,51 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:explore
|
||||
depends_on: build_image
|
||||
key: test_explore
|
||||
label: 'Serverless MKI QA Explore - Security Solution Cypress Tests'
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-explore"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,51 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:ai_assistant
|
||||
label: 'Serverless MKI QA AI Assistant - Security Solution Cypress Tests'
|
||||
depends_on: build_image
|
||||
key: test_ai_assistant
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-gen-ai"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 1
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,51 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:investigations
|
||||
depends_on: build_image
|
||||
key: test_investigations
|
||||
label: 'Serverless MKI QA Investigations - Security Solution Cypress Tests'
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-investigations"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -0,0 +1,71 @@
|
|||
steps:
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/create_periodic_test_docker_image.sh
|
||||
label: Build kibana image
|
||||
key: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-16
|
||||
preemptible: true
|
||||
timeout_in_minutes: 60
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "-1"
|
||||
limit: 3
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/upload_image_metadata.sh
|
||||
label: "Upload runtime info"
|
||||
key: upload_runtime_info
|
||||
depends_on: build_image
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
timeout_in_minutes: 300
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: "*"
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management
|
||||
label: 'Serverless MKI QA Rule Management - Security Solution Cypress Tests'
|
||||
depends_on: build_image
|
||||
key: test_rule_management
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-rule-management"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 8
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
||||
|
||||
- command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:rule_management:prebuilt_rules
|
||||
label: 'Serverless MKI QA Rule Management - Prebuilt Rules - Security Solution Cypress Tests'
|
||||
depends_on: build_image
|
||||
key: test_rule_management_prebuilt_rules
|
||||
env:
|
||||
BK_TEST_SUITE_KEY: "serverless-cypress-rule-management"
|
||||
agents:
|
||||
image: family/kibana-ubuntu-2004
|
||||
imageProject: elastic-images-qa
|
||||
provider: gcp
|
||||
machineType: n2-standard-4
|
||||
preemptible: true
|
||||
# TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate.
|
||||
timeout_in_minutes: 300
|
||||
parallelism: 4
|
||||
retry:
|
||||
automatic:
|
||||
- exit_status: '*'
|
||||
limit: 1
|
|
@ -30,6 +30,6 @@ fi
|
|||
|
||||
QA_API_KEY=$(vault_get security-solution-quality-gate qa_api_key)
|
||||
QA_CONSOLE_URL=$(vault_get security-solution-quality-gate qa_console_url)
|
||||
BK_ANALYTICS_API_KEY=$(vault_get security-solution-quality-gate serverless-sec-sol-cypress-bk-api-key)
|
||||
BK_ANALYTICS_API_KEY=$(vault_get security-solution-quality-gate $BK_TEST_SUITE_KEY)
|
||||
|
||||
QA_CONSOLE_URL=$QA_CONSOLE_URL KIBANA_MKI_USE_LATEST_COMMIT=$KIBANA_OVERRIDE_FLAG BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY CLOUD_QA_API_KEY=$QA_API_KEY yarn $1; status=$?; yarn junit:merge || :; exit $status
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ts-node .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/pipeline.ts
|
|
@ -1,40 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { execSync } from 'child_process';
|
||||
import fs from 'fs';
|
||||
|
||||
const getPipeline = (filename: string, removeSteps = true) => {
|
||||
const str = fs.readFileSync(filename).toString();
|
||||
return removeSteps ? str.replace(/^steps:/, '') : str;
|
||||
};
|
||||
|
||||
const uploadPipeline = (pipelineContent: string | object) => {
|
||||
const str =
|
||||
typeof pipelineContent === 'string' ? pipelineContent : JSON.stringify(pipelineContent);
|
||||
|
||||
execSync('buildkite-agent pipeline upload', {
|
||||
input: str,
|
||||
stdio: ['pipe', 'inherit', 'inherit'],
|
||||
});
|
||||
};
|
||||
|
||||
(async () => {
|
||||
try {
|
||||
const pipeline = [];
|
||||
|
||||
pipeline.push(
|
||||
getPipeline('.buildkite/pipelines/security_solution/security_solution_cypress.yml', false)
|
||||
);
|
||||
// remove duplicated steps
|
||||
uploadPipeline([...new Set(pipeline)].join('\n'));
|
||||
} catch (ex) {
|
||||
console.error('PR pipeline generation error', ex.message);
|
||||
process.exit(1);
|
||||
}
|
||||
})();
|
|
@ -140,7 +140,8 @@ async function createSecurityProject(
|
|||
};
|
||||
} catch (error) {
|
||||
if (error instanceof AxiosError) {
|
||||
log.error(`${error.response?.status}:${error.response?.data}`);
|
||||
const errorData = JSON.stringify(error.response?.data);
|
||||
log.error(`${error.response?.status}:${errorData}`);
|
||||
} else {
|
||||
log.error(`${error.message}`);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue