diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 925b30375c0..b40384cf345 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -367,3 +367,17 @@ steps: build: commit: "${BUILDKITE_COMMIT}" branch: "${BUILDKITE_BRANCH}" + + # NOTE: This should help detecting issues earlier in the development cycle + # See https://github.com/elastic/elastic-agent/issues/11604 + - label: "Trigger Elastic Agent Package" + if: build.pull_request.id != null + commands: + - .buildkite/scripts/steps/trigger-elastic-agent-package.sh + - .buildkite/scripts/steps/trigger-elastic-agent-package.sh | buildkite-agent pipeline upload + if_changed: + include: + - .buildkite/pipeline.elastic-agent-package.yml + - .buildkite/scripts/steps/package.sh + - .buildkite/scripts/steps/trigger-elastic-agent-package.sh + diff --git a/.buildkite/scripts/steps/trigger-elastic-agent-package.sh b/.buildkite/scripts/steps/trigger-elastic-agent-package.sh new file mode 100755 index 00000000000..16000f9b267 --- /dev/null +++ b/.buildkite/scripts/steps/trigger-elastic-agent-package.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# Create a dynamic buildkite step for running the elastic-agent-package pipeline. +# +# Required environment variables: +# - BUILDKITE_PULL_REQUEST +# - BUILDKITE_COMMIT +# - BUILDKITE_BRANCH +# - BUILDKITE_PULL_REQUEST_BASE_BRANCH +# + +if [ ! -f .package-version ]; then + echo ".package-version file not found!" + exit 1 +fi + +# No need for the snapshot but the three digits version is required +BEAT_VERSION=$(jq -r .version .core_version) +MANIFEST_URL=$(jq -r .manifest_url .package-version) + +cat << EOF + - label: ":pipeline: Run elastic-agent-package" + trigger: "elastic-agent-package" + build: + message: "#${BUILDKITE_PULL_REQUEST} - Verify elastic-agent-package works" + commit: "${BUILDKITE_COMMIT}" + branch: "${BUILDKITE_BRANCH}" + env: + DRA_VERSION: "${BEAT_VERSION}" + DRA_WORKFLOW: "snapshot" + DRA_BRANCH: "${BUILDKITE_PULL_REQUEST_BASE_BRANCH}" + DRA_DRY_RUN: "--dry-run" + MANIFEST_URL: "${MANIFEST_URL}" + ELASTIC_SLACK_NOTIFICATIONS_ENABLED: "false" +EOF