Skip to content

Commit 2941dfc

Browse files
authored
[buildkite] stop using str Enum (#25874)
to enable building the pipeline in newer python versions as well as the current version python/cpython#100458 ## How I Tested These Changes bk
1 parent 342b8b6 commit 2941dfc

File tree

6 files changed

+36
-28
lines changed

6 files changed

+36
-28
lines changed

.buildkite/dagster-buildkite/dagster_buildkite/package_spec.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,13 @@ def build_steps(self) -> List[BuildkiteTopLevelStep]:
162162
if v not in unsupported_python_versions
163163
]
164164

165-
pytest_python_versions = sorted(
166-
list(set(default_python_versions) - set(unsupported_python_versions))
167-
)
165+
pytest_python_versions = [
166+
AvailablePythonVersion(v)
167+
for v in sorted(
168+
set(e.value for e in default_python_versions)
169+
- set(e.value for e in unsupported_python_versions)
170+
)
171+
]
168172
# Use highest supported python version if no defaults_match
169173
if len(pytest_python_versions) == 0:
170174
pytest_python_versions = [supported_python_versions[-1]]

.buildkite/dagster-buildkite/dagster_buildkite/python_version.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from dagster_buildkite.utils import is_release_branch, safe_getenv
66

77

8-
class AvailablePythonVersion(str, Enum):
8+
class AvailablePythonVersion(Enum):
99
# Ordering is important here, because some steps will take the highest/lowest available version.
1010
V3_9 = "3.9"
1111
V3_10 = "3.10"
@@ -60,6 +60,6 @@ def from_major_minor(cls, major: int, minor: int) -> "AvailablePythonVersion":
6060

6161
@classmethod
6262
def to_tox_factor(cls, version: "AvailablePythonVersion") -> str:
63-
ver_parts = version.split(".")
63+
ver_parts = version.value.split(".")
6464
major, minor = ver_parts[0], ver_parts[1]
6565
return f"py{major}{minor}"

.buildkite/dagster-buildkite/dagster_buildkite/step_builder.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def on_test_image(
109109
raise Exception(f"Unsupported python version for test image: {ver}.")
110110

111111
return self.on_python_image(
112-
image=f"buildkite-test:py{ver}-{BUILDKITE_TEST_IMAGE_VERSION}",
112+
image=f"buildkite-test:py{ver.value}-{BUILDKITE_TEST_IMAGE_VERSION}",
113113
env=env,
114114
)
115115

.buildkite/dagster-buildkite/dagster_buildkite/steps/integration.py

+14-10
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
GCP_CREDS_LOCAL_FILE,
77
LATEST_DAGSTER_RELEASE,
88
)
9-
from dagster_buildkite.package_spec import PackageSpec, UnsupportedVersionsFunction
9+
from dagster_buildkite.package_spec import (
10+
PackageSpec,
11+
PytestExtraCommandsFunction,
12+
UnsupportedVersionsFunction,
13+
)
1014
from dagster_buildkite.python_version import AvailablePythonVersion
1115
from dagster_buildkite.step_builder import BuildkiteQueue
1216
from dagster_buildkite.steps.test_project import test_project_depends_fn
@@ -60,12 +64,12 @@ def build_backcompat_suite_steps() -> List[BuildkiteTopLevelStep]:
6064
)
6165

6266

63-
def backcompat_extra_cmds(_, factor: str) -> List[str]:
67+
def backcompat_extra_cmds(_, factor: Optional[str]) -> List[str]:
6468
tox_factor_map = {
6569
"user-code-latest-release": LATEST_DAGSTER_RELEASE,
6670
"user-code-earliest-release": EARLIEST_TESTED_RELEASE,
6771
}
68-
72+
assert factor
6973
webserver_version = DAGSTER_CURRENT_BRANCH
7074
webserver_library_version = _get_library_version(webserver_version)
7175
user_code_version = tox_factor_map[factor]
@@ -163,7 +167,7 @@ def build_auto_materialize_perf_suite_steps():
163167

164168
def daemon_pytest_extra_cmds(version: AvailablePythonVersion, _):
165169
return [
166-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
170+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
167171
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
168172
"pushd integration_tests/test_suites/daemon-test-suite/monitoring_daemon_tests/",
169173
"docker-compose up -d --remove-orphans",
@@ -182,7 +186,7 @@ def daemon_pytest_extra_cmds(version: AvailablePythonVersion, _):
182186
# ########################
183187

184188

185-
def build_k8s_suite_steps():
189+
def build_k8s_suite_steps() -> List[BuildkiteTopLevelStep]:
186190
pytest_tox_factors = ["-default", "-subchart"]
187191
directory = os.path.join("integration_tests", "test_suites", "k8s-test-suite")
188192
return build_integration_suite_steps(
@@ -201,7 +205,7 @@ def build_k8s_suite_steps():
201205
def build_integration_suite_steps(
202206
directory: str,
203207
pytest_tox_factors: Optional[List[str]],
204-
pytest_extra_cmds: Optional[Callable] = None,
208+
pytest_extra_cmds: Optional[PytestExtraCommandsFunction] = None,
205209
queue=None,
206210
always_run_if: Optional[Callable[[], bool]] = None,
207211
unsupported_python_versions: Optional[
@@ -229,19 +233,19 @@ def build_integration_suite_steps(
229233
).build_steps()
230234

231235

232-
def k8s_integration_suite_pytest_extra_cmds(version: str, _) -> List[str]:
236+
def k8s_integration_suite_pytest_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
233237
return [
234-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
238+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
235239
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
236240
"aws ecr get-login --no-include-email --region us-west-2 | sh",
237241
]
238242

239243

240-
def celery_k8s_integration_suite_pytest_extra_cmds(version: str, _) -> List[str]:
244+
def celery_k8s_integration_suite_pytest_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
241245
cmds = [
242246
'export AIRFLOW_HOME="/airflow"',
243247
"mkdir -p $${AIRFLOW_HOME}",
244-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
248+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
245249
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
246250
"aws ecr get-login --no-include-email --region us-west-2 | sh",
247251
]

.buildkite/dagster-buildkite/dagster_buildkite/steps/packages.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def _get_uncustomized_pkg_roots(root: str, custom_pkg_roots: List[str]) -> List[
9292
# ########################
9393

9494

95-
def airflow_extra_cmds(version: str, _) -> List[str]:
95+
def airflow_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
9696
return [
9797
'export AIRFLOW_HOME="/airflow"',
9898
"mkdir -p $${AIRFLOW_HOME}",
@@ -160,9 +160,9 @@ def dagster_graphql_extra_cmds(_, tox_factor: Optional[str]) -> List[str]:
160160
]
161161

162162

163-
def celery_extra_cmds(version: str, _) -> List[str]:
163+
def celery_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
164164
return [
165-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
165+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
166166
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
167167
"pushd python_modules/libraries/dagster-celery",
168168
# Run the rabbitmq db. We are in docker running docker
@@ -178,7 +178,7 @@ def celery_extra_cmds(version: str, _) -> List[str]:
178178
]
179179

180180

181-
def celery_docker_extra_cmds(version: str, _) -> List[str]:
181+
def celery_docker_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
182182
return celery_extra_cmds(version, _) + [
183183
"pushd python_modules/libraries/dagster-celery-docker/dagster_celery_docker_tests/",
184184
"docker-compose up -d --remove-orphans",
@@ -192,9 +192,9 @@ def celery_docker_extra_cmds(version: str, _) -> List[str]:
192192
]
193193

194194

195-
def docker_extra_cmds(version: str, _) -> List[str]:
195+
def docker_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
196196
return [
197-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
197+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
198198
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
199199
"pushd python_modules/libraries/dagster-docker/dagster_docker_tests/",
200200
"docker-compose up -d --remove-orphans",
@@ -230,9 +230,9 @@ def docker_extra_cmds(version: str, _) -> List[str]:
230230
]
231231

232232

233-
def k8s_extra_cmds(version: str, _) -> List[str]:
233+
def k8s_extra_cmds(version: AvailablePythonVersion, _) -> List[str]:
234234
return [
235-
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version,
235+
"export DAGSTER_DOCKER_IMAGE_TAG=$${BUILDKITE_BUILD_ID}-" + version.value,
236236
'export DAGSTER_DOCKER_REPOSITORY="$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com"',
237237
]
238238

.buildkite/dagster-buildkite/dagster_buildkite/steps/test_project.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,16 @@ def build_test_project_steps() -> List[GroupStep]:
4949
" $${GOOGLE_APPLICATION_CREDENTIALS}",
5050
"export"
5151
" BASE_IMAGE=$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/test-project-base:py"
52-
+ version
52+
+ version.value
5353
+ "-"
5454
+ TEST_PROJECT_BASE_IMAGE_VERSION,
5555
# build and tag test image
5656
"export"
5757
" TEST_PROJECT_IMAGE=$${AWS_ACCOUNT_ID}.dkr.ecr.us-west-2.amazonaws.com/test-project:$${BUILDKITE_BUILD_ID}-"
58-
+ version,
58+
+ version.value,
5959
"git config --global --add safe.directory /workdir",
6060
"./python_modules/dagster-test/dagster_test/test_project/build.sh "
61-
+ version
61+
+ version.value
6262
+ " $${TEST_PROJECT_IMAGE}",
6363
#
6464
# push the built image
@@ -67,7 +67,7 @@ def build_test_project_steps() -> List[GroupStep]:
6767
)
6868
.on_python_image(
6969
# py version can be bumped when rebuilt
70-
f"buildkite-build-test-project-image:py{AvailablePythonVersion.V3_11}-{BUILDKITE_BUILD_TEST_PROJECT_IMAGE_IMAGE_VERSION}",
70+
f"buildkite-build-test-project-image:py{AvailablePythonVersion.V3_11.value}-{BUILDKITE_BUILD_TEST_PROJECT_IMAGE_IMAGE_VERSION}",
7171
[
7272
"AIRFLOW_HOME",
7373
"AWS_ACCOUNT_ID",

0 commit comments

Comments
 (0)