logstash/.buildkite/aarch64_pipeline.yml
mergify[bot] 03e68b2314
tests: make integration split quantity configurable (#17219) (#17371)
* tests: make integration split quantity configurable

Refactors shared splitter bash function to take a list of files on stdin
and split into a configurable number of partitions, emitting only those from
the currently-selected partition to stdout.

Also refactors the only caller in the integration_tests launcher script to
accept an optional partition_count parameter (defaulting to `2` for backward-
compatibility), to provide the list of specs to the function's stdin, and to
output relevant information about the quantity of partition splits and which
was selected.

* ci: run integration tests in 3 parts

(cherry picked from commit 3e0f488df2)

Co-authored-by: Rye Biesemeyer <yaauie@users.noreply.github.com>
2025-03-20 05:41:51 -07:00

161 lines
4.5 KiB
YAML

# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json
agents:
provider: aws
imagePrefix: platform-ingest-logstash-ubuntu-2204-aarch64
instanceType: "m6g.4xlarge"
diskSizeGb: 200
steps:
- group: "Testing Phase"
key: "testing-phase"
steps:
- label: ":rspec: Ruby unit tests"
key: "ruby-unit-tests"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
ci/unit_tests.sh ruby
retry:
automatic:
- limit: 3
- label: ":java: Java unit tests"
key: "java-unit-tests"
env:
# https://github.com/elastic/logstash/pull/15486 for background
ENABLE_SONARQUBE: "false"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
ci/unit_tests.sh java
retry:
automatic:
- limit: 3
- label: ":lab_coat: Integration Tests / part 1-of-3"
key: "integration-tests-part-1-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
ci/integration_tests.sh split 0 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: Integration Tests / part 2-of-3"
key: "integration-tests-part-2-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
ci/integration_tests.sh split 1 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: Integration Tests / part 3-of-3"
key: "integration-tests-part-3-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
ci/integration_tests.sh split 2 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: IT Persistent Queues / part 1-of-3"
key: "integration-tests-qa-part-1-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
export FEATURE_FLAG=persistent_queues
ci/integration_tests.sh split 0 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: IT Persistent Queues / part 2-of-3"
key: "integration-tests-qa-part-2-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
export FEATURE_FLAG=persistent_queues
ci/integration_tests.sh split 1 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: IT Persistent Queues / part 3-of-3"
key: "integration-tests-qa-part-3-of-3"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
export FEATURE_FLAG=persistent_queues
ci/integration_tests.sh split 2 3
retry:
automatic:
- limit: 3
- label: ":lab_coat: x-pack unit tests"
key: "x-pack-unit-tests"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
x-pack/ci/unit_tests.sh
retry:
automatic:
- limit: 3
- label: ":lab_coat: x-pack integration"
key: "integration-tests-x-pack"
command: |
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh
x-pack/ci/integration_tests.sh
retry:
automatic:
- limit: 3
- group: "Acceptance Phase"
depends_on: "testing-phase"
key: "acceptance-phase"
steps:
- label: "Docker [{{matrix}}] flavor acceptance"
command:
set -euo pipefail
source .buildkite/scripts/common/vm-agent.sh && ci/docker_acceptance_tests.sh {{matrix}}
retry:
automatic:
- limit: 3
matrix:
- "full"
- "oss"
# *** TODO: enable after clarifying if acceptance tests really need vagrant on aarch64
# - label: "Acceptance tests on {{matrix.distribution}}"
# agents:
# provider: aws
# imagePrefix: platform-ingest-logstash-{{matrix.distribution}}-aarch64
# instanceType: "m6g.4xlarge"
# diskSizeGb: 200
# command:
# set -euo pipefail
# source .buildkite/scripts/common/vm-agent.sh && ci/acceptance_tests.sh {{matrix.suite}}
# matrix:
# setup:
# suite:
# - "debian"
# distribution:
# - "ubuntu-2204"