Repository: elastic/integrations
Pull request #13410: [CI] Update CI scripts
Author: login: mrodm
Created: 2025-04-03T09:04:33Z | Merged: 2025-04-07T09:54:16Z

## Proposed commit message

Update CI scripts among the changes
- Some refactors to place all the code related to filtering out packages in the same function.
- Avoid creating kind clusters in CI build testing with Serverless.
- Remove some output:
   - List of files updated in the PR that affected to test packages. As example:
     ```
     [auth0] git-diff: check non-package files
     .buildkite/pipeline.yml
     dev/testsreporter/_static/summary.tmpl
     dev/testsreporter/builderror.go
     dev/testsreporter/dataerror.go
     dev/testsreporter/errorlinks.go
     dev/testsreporter/format_test.go
     dev/testsreporter/packageerror.go
     dev/testsreporter/reporter.go
     dev/testsreporter/reporter_test.go
     dev/testsreporter/testsreporter.go
     magefile.go
     ```

Example of the output shown before and after to check whether or not a package should be tested:
- Before
```
[DEBUG] Checking with commits: from: 'origin/main' to: '32e72850687167562d5f93b39f4c4b98e60aa333'
[bitwarden] Original commits: from 'origin/main' - to: '32e72850687167562d5f93b39f4c4b98e60aa333'
[bitwarden]: commits: from: 'origin/main' - to: '32e72850687167562d5f93b39f4c4b98e60aa333'
[bitwarden] git-diff: check non-package files
.buildkite/pipeline.yml
.buildkite/scripts/common.sh
dev/testsreporter/_static/summary.tmpl
dev/testsreporter/builderror.go
dev/testsreporter/dataerror.go
dev/testsreporter/errorlinks.go
dev/testsreporter/format_test.go
dev/testsreporter/packageerror.go
dev/testsreporter/reporter.go
dev/testsreporter/reporter_test.go
dev/testsreporter/testsreporter.go
magefile.go
[bitwarden] PR is affected: found non-package files
[fleet_server] Original commits: from 'origin/main' - to: '32e72850687167562d5f93b39f4c4b98e60aa333'
[fleet_server]: commits: from: 'origin/main' - to: '32e72850687167562d5f93b39f4c4b98e60aa333'
[fleet_server] git-diff: check non-package files
.buildkite/pipeline.yml
.buildkite/scripts/common.sh
dev/testsreporter/_static/summary.tmpl
dev/testsreporter/builderror.go
dev/testsreporter/dataerror.go
dev/testsreporter/errorlinks.go
dev/testsreporter/format_test.go
dev/testsreporter/packageerror.go
dev/testsreporter/reporter.go
dev/testsreporter/reporter_test.go
dev/testsreporter/testsreporter.go
magefile.go
[fleet_server] PR is affected: found non-package files
...
```
- After
```
Checking with commits: from: 'origin/main' to: '35f5cfcb9ea8300de71b5b55f0cb0afea2666cc4'
[beaconing] git-diff: check non-package files (703b76e5b9004bc2c9c06e5844e6a56465b0cb4c..35f5cfcb9ea8300de71b5b55f0cb0afea2666cc4)
[beaconing] PR is affected: found non-package files
[bitwarden] git-diff: check non-package files (703b76e5b9004bc2c9c06e5844e6a56465b0cb4c..35f5cfcb9ea8300de71b5b55f0cb0afea2666cc4)
[bitwarden] PR is affected: found non-package files
...
```

## Author's Checklist

- [ ] Test with PR build.
- [x] Test created kind cluster if k8s resources are defined. https://buildkite.com/elastic/integrations/builds/24293#0195fbfb-3014-4214-8b40-591554084a47
- [x] Test just the packages modified are the ones tested. https://buildkite.com/elastic/integrations/builds/24294
- [x] Test with Serverless build. https://buildkite.com/elastic/integrations-serverless/builds/1064

## Related issues

- Relates #13377




Diff:
diff --git a/.buildkite/scripts/common.sh b/.buildkite/scripts/common.sh
index 84aab2f520b..1384cfb02bc 100755
--- a/.buildkite/scripts/common.sh
+++ b/.buildkite/scripts/common.sh
@@ -570,9 +570,9 @@ prepare_serverless_stack() {
 }
 
 is_spec_3_0_0() {
-    local pkg_spec
+    local pkg_spec=""
     pkg_spec=$(cat manifest.yml | yq '.format_version')
-    local major_version
+    local major_version=""
     major_version=$(echo "$pkg_spec" | cut -d '.' -f 1)
 
     if [ "${major_version}" -ge 3 ]; then
@@ -670,10 +670,8 @@ get_to_changeset() {
 
 is_pr_affected() {
     local package="${1}"
-    local from=${2:-""}
-    local to=${3:-""}
-
-    echoerr "[${package}] Original commits: from '${from}' - to: '${to}'"
+    local from="${2}"
+    local to="${3}"
 
     if ! is_supported_stack ; then
         echo "[${package}] PR is not affected: unsupported stack (${STACK_VERSION})"
@@ -689,6 +687,16 @@ is_pr_affected() {
             echo "[${package}] PR is not affected: capabilities not mached with the project (${SERVERLESS_PROJECT})"
             return 1
         fi
+        if [[ "${package}" == "fleet_server" ]]; then
+            echoerr "fleet_server not supported. Skipped"
+            echo "[${package}] not supported"
+            return 1
+        fi
+        if ! is_spec_3_0_0 ; then
+            echoerr "Not v3 spec version. Skipped"
+            echo "[${package}] spec <3.0.0"
+            return 1
+        fi
     fi
 
     if [[ "${FORCE_CHECK_ALL}" == "true" ]];then
@@ -696,23 +704,14 @@ is_pr_affected() {
         return 0
     fi
 
-    if [[ "${from}" == ""  || "${to}" == "" ]]; then
-        echo "[${package}] Calculating commits: from '${from}' - to: '${to}'"
-        # setting range of changesets to check differences
-        from="$(get_from_changeset)"
-        to="$(get_to_changeset)"
-    fi
-
-    echo "[${package}]: commits: from: '${from}' - to: '${to}'"
-
-    echo "[${package}] git-diff: check non-package files"
     commit_merge=$(git merge-base "${from}" "${to}")
-    if git diff --name-only "${commit_merge}" "${to}" | grep -E -v '^(packages/|\.github/(CODEOWNERS|ISSUE_TEMPLATE|PULL_REQUEST_TEMPLATE)|README\.md|docs/)' ; then
+    echoerr "[${package}] git-diff: check non-package files (${commit_merge}..${to})"
+    if git diff --name-only "${commit_merge}" "${to}" | grep -q -E -v '^(packages/|\.github/(CODEOWNERS|ISSUE_TEMPLATE|PULL_REQUEST_TEMPLATE)|README\.md|docs/)' ; then
         echo "[${package}] PR is affected: found non-package files"
         return 0
     fi
-    echo "[${package}] git-diff: check package files"
-    if git diff --name-only "${commit_merge}" "${to}" | grep -E "^packages/${package}/" ; then
+    echoerr "[${package}] git-diff: check package files (${commit_merge}..${to})"
+    if git diff --name-only "${commit_merge}" "${to}" | grep -q -E "^packages/${package}/" ; then
         echo "[${package}] PR is affected: found package files"
         return 0
     fi
@@ -728,7 +727,11 @@ is_pr() {
 }
 
 kubernetes_service_deployer_used() {
-    find . -type d | grep -E '_dev/deploy/k8s$'
+    # Not able to use -q in parameter
+    # as set -o pipefail is defined, when adding "-q" parameter, grep finishes with its first match
+    # but find still is writing to the pipe causing the SIGPIPE
+    # https://tldp.org/LDP/lpg/node20.html
+    find . -type d | grep -E "_dev/deploy/k8s$" > /dev/null
 }
 
 teardown_serverless_test_package() {
@@ -954,9 +957,8 @@ upload_safe_logs_from_package() {
 
 # Helper to run all tests and checks for a package
 process_package() {
-    local package="$1"
-    local from=${2:-""}
-    local to=${3:-""}
+    local package="${1}"
+    local failed_packages_file="${2:-""}"
     local exit_code=0
 
     echo "--- Package ${package}: check"
@@ -964,44 +966,26 @@ process_package() {
 
     clean_safe_logs
 
-    if is_serverless ; then
-        if [[ "${package}" == "fleet_server" ]]; then
-            echo "fleet_server not supported. Skipped"
-            echo "- [${package}] not supported" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-        if ! is_spec_3_0_0 ; then
-            echo "Not v3 spec version. Skipped"
-            echo "- [${package}] spec <3.0.0" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-    fi
-
-    if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
-        echo "${reason}"
-        echo "- ${reason}" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-        popd > /dev/null
-        return
-    fi
-
-    echo "${reason}"
-
     use_kind=0
-    if kubernetes_service_deployer_used ; then
-        echo "Kubernetes service deployer is used. Creating Kind cluster"
-        use_kind=1
-        if ! create_kind_cluster ; then
-            popd > /dev/null
-            return 1
+    if ! is_serverless ; then
+        # TODO: in serverless system tests are not triggered,
+        # there is no need to create the kind cluster in these CI builds.
+        if kubernetes_service_deployer_used ; then
+            echo "Kubernetes service deployer is used. Creating Kind cluster"
+            use_kind=1
+            if ! create_kind_cluster ; then
+                popd > /dev/null
+                return 1
+            fi
         fi
     fi
 
     if ! run_tests_package "${package}" ; then
         exit_code=1
         echo "[${package}] run_tests_package failed"
-        echo "- ${package}" >> "${FAILED_PACKAGES_FILE_PATH}"
+        if [[ "${failed_packages_file}" != "" ]]; then
+            echo "- ${package}" >> "${failed_packages_file}"
+        fi
     fi
 
     if ! is_serverless ; then
diff --git a/.buildkite/scripts/test_integrations_with_serverless.sh b/.buildkite/scripts/test_integrations_with_serverless.sh
index 3a438fad2d1..85201af08b0 100755
--- a/.buildkite/scripts/test_integrations_with_serverless.sh
+++ b/.buildkite/scripts/test_integrations_with_serverless.sh
@@ -61,13 +61,32 @@ echo "Done."
 
 # setting range of changesets to check differences
 from="$(get_from_changeset)"
+if [[ "${from}" == "" ]]; then
+    echo "Missing \"from\" changset".
+    exit 1
+fi
 to="$(get_to_changeset)"
+if [[ "${to}" == "" ]]; then
+    echo "Missing \"to\" changset".
+    exit 1
+fi
+echo "Checking with commits: from: '${from}' to: '${to}'"
 
 any_package_failing=0
 
 pushd packages > /dev/null
 for package in $(list_all_directories); do
-    if ! process_package "${package}" "${from}" "${to}"; then
+    pushd "${package}" > /dev/null
+    if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
+        echo "${reason}"
+        echo "- ${reason}" >> "${SKIPPED_PACKAGES_FILE_PATH}"
+        popd > /dev/null
+        continue
+    fi
+    echo "${reason}"
+    popd > /dev/null
+
+    if ! process_package "${package}" "${FAILED_PACKAGES_FILE_PATH}" ; then
         any_package_failing=1
     fi
 done
diff --git a/.buildkite/scripts/test_one_package.sh b/.buildkite/scripts/test_one_package.sh
index 2c6315030d2..c45385cf5b5 100755
--- a/.buildkite/scripts/test_one_package.sh
+++ b/.buildkite/scripts/test_one_package.sh
@@ -4,17 +4,8 @@ source .buildkite/scripts/common.sh
 
 set -euo pipefail
 
-
-# used in common.sh
-SKIPPED_PACKAGES_FILE_PATH="${WORKSPACE}/skipped_packages.txt"
-FAILED_PACKAGES_FILE_PATH="${WORKSPACE}/failed_packages.txt"
-
 # package name
 package="$1"
-# changesets
-from=${2:-""}
-to=${3:-""}
-
 
 if [ ! -d packages ]; then
     echo "Missing packages folder"
@@ -36,7 +27,7 @@ use_elastic_package
 
 pushd packages > /dev/null
 exit_code=0
-if ! process_package "${package}" "${from}" "${to}"; then
+if ! process_package "${package}" ; then
     echo "[${package}] failed"
     exit_code=1
 fi
diff --git a/.buildkite/scripts/trigger_integrations_in_parallel.sh b/.buildkite/scripts/trigger_integrations_in_parallel.sh
index 92f4e3545df..09372ec11f8 100755
--- a/.buildkite/scripts/trigger_integrations_in_parallel.sh
+++ b/.buildkite/scripts/trigger_integrations_in_parallel.sh
@@ -25,9 +25,17 @@ EOF
 
 # setting range of changesets to check differences
 from="$(get_from_changeset)"
+if [[ "${from}" == "" ]]; then
+    echo "Missing \"from\" changset".
+    exit 1
+fi
 to="$(get_to_changeset)"
+if [[ "${to}" == "" ]]; then
+    echo "Missing \"to\" changset".
+    exit 1
+fi
 
-echo "[DEBUG] Checking with commits: from: '${from}' to: '${to}'"
+echo "Checking with commits: from: '${from}' to: '${to}'"
 
 # This variable does not exist in builds triggered automatically
 GITHUB_PR_TRIGGER_COMMENT="${GITHUB_PR_TRIGGER_COMMENT:-""}"


Reviews:
user: login: mrodm
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-03T10:21:21Z
user: login: mrodm
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-03T10:22:18Z
user: login: mrodm
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-03T11:33:02Z
user: login: jsoriano
state: APPROVED
author_association: MEMBER
submitted_at: 2025-04-07T08:49:25Z

Review comments:
diff_hunk: @@ -954,54 +962,37 @@ upload_safe_logs_from_package() {
 
 # Helper to run all tests and checks for a package
 process_package() {
-    local package="$1"
-    local from=${2:-""}
-    local to=${3:-""}
+    local package="${1}"
+    local from="${2}"
+    local to="${3}"
+    local failed_packages_file="${4:-""}"
     local exit_code=0
 
     echo "--- Package ${package}: check"
     pushd "${package}" > /dev/null
 
     clean_safe_logs
 
-    if is_serverless ; then
-        if [[ "${package}" == "fleet_server" ]]; then
-            echo "fleet_server not supported. Skipped"
-            echo "- [${package}] not supported" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-        if ! is_spec_3_0_0 ; then
-            echo "Not v3 spec version. Skipped"
-            echo "- [${package}] spec <3.0.0" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
path: .buildkite/scripts/common.sh
user: login: mrodm
body: Moved to `is_pr_affected`.
created_at: 2025-04-03T10:21:21Z
author_association: COLLABORATOR
diff_hunk: @@ -954,54 +962,37 @@ upload_safe_logs_from_package() {
 
 # Helper to run all tests and checks for a package
 process_package() {
-    local package="$1"
-    local from=${2:-""}
-    local to=${3:-""}
+    local package="${1}"
+    local from="${2}"
+    local to="${3}"
+    local failed_packages_file="${4:-""}"
     local exit_code=0
 
     echo "--- Package ${package}: check"
     pushd "${package}" > /dev/null
 
     clean_safe_logs
 
-    if is_serverless ; then
-        if [[ "${package}" == "fleet_server" ]]; then
-            echo "fleet_server not supported. Skipped"
-            echo "- [${package}] not supported" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-        if ! is_spec_3_0_0 ; then
-            echo "Not v3 spec version. Skipped"
-            echo "- [${package}] spec <3.0.0" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-    fi
-
-    if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
-        echo "${reason}"
-        echo "- ${reason}" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-        popd > /dev/null
-        return
-    fi
path: .buildkite/scripts/common.sh
user: login: mrodm
body: This was run twice in builds from PRs.
In those builds, this filtering is run in its own CI step that creates dynamically an step for each package that should be tested.
created_at: 2025-04-03T10:22:17Z
author_association: COLLABORATOR
diff_hunk: @@ -954,54 +962,37 @@ upload_safe_logs_from_package() {
 
 # Helper to run all tests and checks for a package
 process_package() {
-    local package="$1"
-    local from=${2:-""}
-    local to=${3:-""}
+    local package="${1}"
+    local from="${2}"
+    local to="${3}"
+    local failed_packages_file="${4:-""}"
     local exit_code=0
 
     echo "--- Package ${package}: check"
     pushd "${package}" > /dev/null
 
     clean_safe_logs
 
-    if is_serverless ; then
-        if [[ "${package}" == "fleet_server" ]]; then
-            echo "fleet_server not supported. Skipped"
-            echo "- [${package}] not supported" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-        if ! is_spec_3_0_0 ; then
-            echo "Not v3 spec version. Skipped"
-            echo "- [${package}] spec <3.0.0" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-            popd > /dev/null
-            return
-        fi
-    fi
-
-    if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
-        echo "${reason}"
-        echo "- ${reason}" >> "${SKIPPED_PACKAGES_FILE_PATH}"
-        popd > /dev/null
-        return
-    fi
path: .buildkite/scripts/common.sh
user: login: mrodm
body: As there is no need to calculate again `from` and `to` , those variables are removed as parameters in this function too.
created_at: 2025-04-03T11:33:02Z
author_association: COLLABORATOR

PR comments:
user: login: elastic-vault-github-plugin-prod[bot]
created_at: 2025-04-03T09:26:23Z
body: ### :rocket: Benchmarks report




























































































































#### Package `cloud_security_posture` :&#43;1:(0) :green_heart:(0) :broken_heart:(2)
<details>
<summary>Expand to view</summary>

Data stream | Previous EPS | New EPS | Diff (%) | Result
----------- | ------------ | ------- | -------- | ------
`findings` | 58823.53 | 43478.26 | -15345.27 (-26.09%) | :broken_heart:
`vulnerabilities` | 250000 | 200000 | -50000 (-20%) | :broken_heart:
</details>










































































































































































































































































































































































































To see the full report comment with `/test benchmark fullreport`
<!--COMMENT_GENERATED_WITH_ID_benchmark-report-->
author_association: NONE
user: login: elastic-sonarqube[bot]
created_at: 2025-04-03T17:47:07Z
body: ## [![Quality Gate passed](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')](https://sonar.elastic.dev/dashboard?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410) **Quality Gate passed**  
Issues  
[![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/passed-16px.png '')](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410&resolved=false) [0 New issues](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410&resolved=false)  
[![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/fixed-16px.png '')](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&fixedInPullRequest=13410) [0 Fixed issues](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&fixedInPullRequest=13410)  
[![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/accepted-16px.png '')](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410&issueStatuses=ACCEPTED) [0 Accepted issues](https://sonar.elastic.dev/project/issues?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410&issueStatuses=ACCEPTED)

Measures  
[![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/passed-16px.png '')](https://sonar.elastic.dev/security_hotspots?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410) [0 Security Hotspots](https://sonar.elastic.dev/security_hotspots?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410)  
![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/no-data-16px.png '') No data about Coverage  
![](https://raw.githubusercontent.com/SonarSource/sonarqube-static-resources/master/v104/common/no-data-16px.png '') No data about Duplication  
  
[See analysis details on SonarQube](https://sonar.elastic.dev/dashboard?id=elastic_integrations_AYu5LCaKQZlFqhqWIrk_&pullRequest=13410)


author_association: NONE
user: login: elasticmachine
created_at: 2025-04-03T17:48:12Z
body: ## :green_heart: Build Succeeded
* [Buildkite Build](https://buildkite.com/elastic/integrations/builds/24298)
* Commit: c663e362a669f1f2c6025581884eb26cff3dadb1

### History
* :green_heart: [Build #24294](https://buildkite.com/elastic/integrations/builds/24294) succeeded 64cec646291666ed595dc3703a2f89a9969ca347
* :broken_heart: [Build #24293](https://buildkite.com/elastic/integrations/builds/24293) failed 6d7655206ff7f5cde965919fd6328534e66f2b9f
* :broken_heart: [Build #24288](https://buildkite.com/elastic/integrations/builds/24288) failed 7f4e478663c1987bc2fe1469de5c2abdc79d4d23
* :broken_heart: [Build #24285](https://buildkite.com/elastic/integrations/builds/24285) failed 35f5cfcb9ea8300de71b5b55f0cb0afea2666cc4
* :broken_heart: [Build #24282](https://buildkite.com/elastic/integrations/builds/24282) failed 923500335e3b132cc0bf9e88cc6d226f489227a2
* :broken_heart: [Build #24280](https://buildkite.com/elastic/integrations/builds/24280) failed 14b56d62145486553b754093634a2a0b95c22839

cc @mrodm

<!--buildkite-pr-comment-integrations
{"builds":[{"buildStatus":{"state":"passed","success":true,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24298","number":24298,"commit":"c663e362a669f1f2c6025581884eb26cff3dadb1"},{"buildStatus":{"state":"passed","success":true,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24294","number":24294,"commit":"64cec646291666ed595dc3703a2f89a9969ca347"},{"buildStatus":{"state":"failed","success":false,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24293","number":24293,"commit":"6d7655206ff7f5cde965919fd6328534e66f2b9f"},{"buildStatus":{"state":"failed","success":false,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24288","number":24288,"commit":"7f4e478663c1987bc2fe1469de5c2abdc79d4d23"},{"buildStatus":{"state":"failed","success":false,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24285","number":24285,"commit":"35f5cfcb9ea8300de71b5b55f0cb0afea2666cc4"},{"buildStatus":{"state":"failed","success":false,"hasRetries":false,"hasNonPreemptionRetries":false},"url":"https://buildkite.com/elastic/integrations/builds/24282","number":24282,"commit":"923500335e3b132cc0bf9e88cc6d226f489227a2"}],"number":24298}
buildkite-pr-comment-->
author_association: NONE