mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 22:57:16 -04:00
This commit adds support for building + publishing DRA (-SNAPSHOT for now) artifacts for Logstash. It builds on top of #15312 and therefore only targets the `main` branch and is intended to be run manually during a trial period before we retire the corresponding Jenkins job. The structure is similar to Jenkins: 1. Three steps runs in parallel to build packages, x86_64 docker and aarch64 docker artifacts. 2. Once 1. is successfully done, use release manager to publish the artifacts. We generate the pipeline steps for 1. and 2. dynamically (with a simple Python script) to avoid repetition for future PRs: we will add a new pipeline in a follow up PR for -STAGING. The actual shell scripts are simplified copies from the existing `dra*` scripts under https://github.com/elastic/logstash/tree/main/ci; the simplification comes from native support for copying artifacts between steps in Buildkite and not having to use an intermediate bucket. Relates: https://github.com/elastic/ingest-dev/issues/1720 Blocked by: https://github.com/elastic/ci/pull/2312/files
23 lines
980 B
Bash
Executable file
23 lines
980 B
Bash
Executable file
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
DOCKER_REGISTRY="docker.elastic.co"
|
|
DOCKER_REGISTRY_SECRET_PATH="kv/ci-shared/platform-ingest/docker_registry_prod"
|
|
CI_DRA_ROLE_PATH="kv/ci-shared/release/dra-role"
|
|
|
|
|
|
function docker_login {
|
|
DOCKER_USERNAME_SECRET=$(retry -t 5 -- vault kv get -field user "${DOCKER_REGISTRY_SECRET_PATH}")
|
|
DOCKER_PASSWORD_SECRET=$(retry -t 5 -- vault kv get -field password "${DOCKER_REGISTRY_SECRET_PATH}")
|
|
docker login -u "${DOCKER_USERNAME_SECRET}" -p "${DOCKER_PASSWORD_SECRET}" "${DOCKER_REGISTRY}" 2>/dev/null
|
|
unset DOCKER_USERNAME_SECRET DOCKER_PASSWORD_SECRET
|
|
}
|
|
|
|
function release_manager_login {
|
|
DRA_CREDS_SECRET=$(retry -t 5 -- vault kv get -field=data -format=json ${CI_DRA_ROLE_PATH})
|
|
VAULT_ADDR_SECRET=$(echo ${DRA_CREDS_SECRET} | jq -r '.vault_addr')
|
|
VAULT_ROLE_ID=$(echo ${DRA_CREDS_SECRET} | jq -r '.role_id')
|
|
VAULT_SECRET_ID=$(echo ${DRA_CREDS_SECRET} | jq -r '.secret_id')
|
|
export VAULT_ADDR_SECRET VAULT_ROLE_ID VAULT_SECRET_ID
|
|
}
|