Skip to content

Commit f8f53d1

Browse files
authored
Revert "Use centralized version qualifier (#16995)" (#17006)
This reverts commit ac56d99. As mentioned in #16995 (comment) testing revealed that even an empty VERSION_QUALIFIER env var currently gets honored for snapshot builds (resulting in an unnecessary empty "-" suffix) so there's a little more prerequisite work needed.
1 parent ac56d99 commit f8f53d1

File tree

2 files changed

+14
-54
lines changed

2 files changed

+14
-54
lines changed

.buildkite/dra_pipeline.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ steps:
66
set -euo pipefail
77
88
echo "--- Building [$${WORKFLOW_TYPE}] artifacts"
9-
python3 -m pip install pyyaml urllib3
9+
python3 -m pip install pyyaml
1010
echo "--- Building dynamic pipeline steps"
1111
python3 .buildkite/scripts/dra/generatesteps.py > steps.yml
1212
echo "--- Printing dynamic pipeline steps"
+13-53
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,10 @@
11
import os
2-
import urllib3
3-
from urllib3.util.retry import Retry
4-
from urllib3.exceptions import HTTPError
2+
import sys
53

64
import yaml
75

86
YAML_HEADER = '# yaml-language-server: $schema=https://raw.githubusercontent.com/buildkite/pipeline-schema/main/schema.json\n'
97

10-
def fetch_version_qualifier_url_with_retries(branch, max_retries=3, backoff_factor=2):
11-
"""
12-
Return the version qualifier from a centralized URL based on branch. For any failure or response apart from 200,
13-
assume no qualifier (return empty string).
14-
"""
15-
url = f"https://storage.googleapis.com/dra-qualifier/{branch}"
16-
17-
http = urllib3.PoolManager()
18-
19-
# Configure retries: Exponential backoff with 3 retries
20-
retries = Retry(
21-
total=max_retries,
22-
backoff_factor=backoff_factor, # Wait time increases exponentially (2, 4, 8s)
23-
status_forcelist=[500, 502, 503, 504], # Retry only on server errors
24-
raise_on_status=False # Do not raise exception on failed status codes
25-
)
26-
27-
try:
28-
response = http.request("GET", url, retries=retries, timeout=5)
29-
if response.status == 200:
30-
return response.data.decode("utf-8").strip()
31-
except HTTPError as e:
32-
pass
33-
34-
return ""
35-
368
def to_bk_key_friendly_string(key):
379
"""
3810
Convert and return key to an acceptable format for Buildkite's key: field
@@ -43,7 +15,7 @@ def to_bk_key_friendly_string(key):
4315

4416
return key.translate(mapping_table)
4517

46-
def package_x86_step(branch, workflow_type, version_qualifier):
18+
def package_x86_step(branch, workflow_type):
4719
step = f'''
4820
- label: ":package: Build packages / {branch}-{workflow_type.upper()} DRA artifacts"
4921
key: "logstash_build_packages_dra"
@@ -55,15 +27,14 @@ def package_x86_step(branch, workflow_type, version_qualifier):
5527
diskSizeGb: 200
5628
command: |
5729
export WORKFLOW_TYPE="{workflow_type}"
58-
export VERSION_QUALIFIER="{version_qualifier}"
5930
export PATH="/opt/buildkite-agent/.rbenv/bin:/opt/buildkite-agent/.pyenv/bin:$PATH"
6031
eval "$(rbenv init -)"
6132
.buildkite/scripts/dra/build_packages.sh
6233
'''
6334

6435
return step
6536

66-
def package_x86_docker_step(branch, workflow_type, version_qualifier):
37+
def package_x86_docker_step(branch, workflow_type):
6738
step = f'''
6839
- label: ":package: Build x86_64 Docker / {branch}-{workflow_type.upper()} DRA artifacts"
6940
key: "logstash_build_x86_64_docker_dra"
@@ -75,7 +46,6 @@ def package_x86_docker_step(branch, workflow_type, version_qualifier):
7546
diskSizeGb: 200
7647
command: |
7748
export WORKFLOW_TYPE="{workflow_type}"
78-
export VERSION_QUALIFIER="{version_qualifier}"
7949
export PATH="/opt/buildkite-agent/.rbenv/bin:/opt/buildkite-agent/.pyenv/bin:$PATH"
8050
export ARCH="x86_64"
8151
eval "$(rbenv init -)"
@@ -84,7 +54,7 @@ def package_x86_docker_step(branch, workflow_type, version_qualifier):
8454

8555
return step
8656

87-
def package_aarch64_docker_step(branch, workflow_type, version_qualifier):
57+
def package_aarch64_docker_step(branch, workflow_type):
8858
step = f'''
8959
- label: ":package: Build aarch64 Docker / {branch}-{workflow_type.upper()} DRA artifacts"
9060
key: "logstash_build_aarch64_docker_dra"
@@ -95,7 +65,6 @@ def package_aarch64_docker_step(branch, workflow_type, version_qualifier):
9565
diskSizeGb: 200
9666
command: |
9767
export WORKFLOW_TYPE="{workflow_type}"
98-
export VERSION_QUALIFIER="{version_qualifier}"
9968
export PATH="/opt/buildkite-agent/.rbenv/bin:/opt/buildkite-agent/.pyenv/bin:$PATH"
10069
export ARCH="aarch64"
10170
eval "$(rbenv init -)"
@@ -104,7 +73,7 @@ def package_aarch64_docker_step(branch, workflow_type, version_qualifier):
10473

10574
return step
10675

107-
def publish_dra_step(branch, workflow_type, depends_on, version_qualifier):
76+
def publish_dra_step(branch, workflow_type, depends_on):
10877
step = f'''
10978
- label: ":elastic-stack: Publish / {branch}-{workflow_type.upper()} DRA artifacts"
11079
key: "logstash_publish_dra"
@@ -123,59 +92,50 @@ def publish_dra_step(branch, workflow_type, depends_on, version_qualifier):
12392
sudo chown -R :1000 build
12493
echo "+++ Running DRA publish step"
12594
export WORKFLOW_TYPE="{workflow_type}"
126-
export VERSION_QUALIFIER="{version_qualifier}"
12795
.buildkite/scripts/dra/publish.sh
12896
'''
12997

13098
return step
13199

132-
def build_steps_to_yaml(branch, workflow_type, version_qualifier):
100+
def build_steps_to_yaml(branch, workflow_type):
133101
steps = []
134-
steps.extend(yaml.safe_load(package_x86_step(branch, workflow_type, version_qualifier)))
135-
steps.extend(yaml.safe_load(package_x86_docker_step(branch, workflow_type, version_qualifier)))
136-
steps.extend(yaml.safe_load(package_aarch64_docker_step(branch, workflow_type, version_qualifier)))
102+
steps.extend(yaml.safe_load(package_x86_step(branch, workflow_type)))
103+
steps.extend(yaml.safe_load(package_x86_docker_step(branch, workflow_type)))
104+
steps.extend(yaml.safe_load(package_aarch64_docker_step(branch, workflow_type)))
137105

138106
return steps
139107

140108
if __name__ == "__main__":
141-
# DRA_BRANCH can be used for manually testing packaging with PRs
142-
# e.g. define `DRA_BRANCH="main"` under Options/Environment Variables in the Buildkite UI after clicking new Build
143-
branch = os.environ.get("DRA_BRANCH", os.environ["BUILDKITE_BRANCH"])
144-
145109
try:
146110
workflow_type = os.environ["WORKFLOW_TYPE"]
111+
version_qualifier = os.environ.get("VERSION_QUALIFIER", "")
147112
except ImportError:
148113
print(f"Missing env variable WORKFLOW_TYPE. Use export WORKFLOW_TYPE=<staging|snapshot>\n.Exiting.")
149114
exit(1)
150115

151-
# allow manually set version qualifier via BK env vars (should be rarely used, only for testing)
152-
version_qualifier = os.environ.get("VERSION_QUALIFIER", "")
116+
branch = os.environ["BUILDKITE_BRANCH"]
153117

154118
structure = {"steps": []}
155119

156120
if workflow_type.upper() == "SNAPSHOT" and len(version_qualifier)>0:
157-
# externally set VERSION_QUALIFIER is NOT allowed with SNAPSHOT DRA. Skip.
158121
structure["steps"].append({
159122
"label": f"no-op pipeline because prerelease builds (VERSION_QUALIFIER is set to [{version_qualifier}]) don't support the [{workflow_type}] workflow",
160123
"command": ":",
161124
"skip": "VERSION_QUALIFIER (prerelease builds) not supported with SNAPSHOT DRA",
162125
})
163126
else:
164-
if workflow_type.upper() == "STAGING" and len(version_qualifier)==0:
165-
version_qualifier = fetch_version_qualifier_url_with_retries(branch)
166-
167127
# Group defining parallel steps that build and save artifacts
168128
group_key = to_bk_key_friendly_string(f"logstash_dra_{workflow_type}")
169129

170130
structure["steps"].append({
171131
"group": f":Build Artifacts - {workflow_type.upper()}",
172132
"key": group_key,
173-
"steps": build_steps_to_yaml(branch, workflow_type, version_qualifier),
133+
"steps": build_steps_to_yaml(branch, workflow_type),
174134
})
175135

176136
# Final step: pull artifacts built above and publish them via the release-manager
177137
structure["steps"].extend(
178-
yaml.safe_load(publish_dra_step(branch, workflow_type, depends_on=group_key, version_qualifier=version_qualifier)),
138+
yaml.safe_load(publish_dra_step(branch, workflow_type, depends_on=group_key)),
179139
)
180140

181141
print(YAML_HEADER + yaml.dump(structure, Dumper=yaml.Dumper, sort_keys=False))

0 commit comments

Comments
 (0)