Skip to content

Commit 4fe4ee0

Browse files
authored
🤖 update CI test matrix (#299)
1 parent 5a5719b commit 4fe4ee0

3 files changed

Lines changed: 37 additions & 9 deletions

File tree

scripts/generate_test_matrix.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ class TestConfig(NamedTuple):
5959
# Component versions
6060
OS_VERSIONS = ["Ubuntu"]
6161
PYTHON_VERSIONS = ["3.12", "3.11", "3.10"]
62-
RAY_VERSIONS = ["2.49.2", "2.46.0"]
63-
DAGSTER_VERSIONS = ["1.11.13", "1.11.6", "1.11.1", "1.10.21"]
64-
KUBERAY_VERSIONS = ["1.4.0", "1.3.0", "1.2.2"]
62+
RAY_VERSIONS = ["2.53.0", "2.46.0"]
63+
DAGSTER_VERSIONS = ["1.12.12", "1.11.16", "1.10.21"]
64+
KUBERAY_VERSIONS = ["1.5.1", "1.4.2", "1.3.0", "1.2.2"]
6565

6666
# Component registry for DRY iteration
6767
COMPONENTS = {

src/dagster_ray/kuberay/client/rayjob/client.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ class RayJobStatus(TypedDict):
2626
jobId: NotRequired[str]
2727
rayJobInfo: NotRequired[dict[str, Any]]
2828
jobDeploymentStatus: str
29-
rayClusterName: str
30-
rayClusterStatus: RayClusterStatus
31-
startTime: str
29+
rayClusterName: NotRequired[str]
30+
rayClusterStatus: NotRequired[RayClusterStatus]
31+
startTime: NotRequired[str]
3232

3333
dashboardURL: NotRequired[str]
3434
endTime: NotRequired[str]
@@ -55,7 +55,25 @@ def __init__(
5555
super().__init__(group=GROUP, version=VERSION, kind=KIND, plural=PLURAL, api_client=api_client)
5656

5757
def get_ray_cluster_name(self, name: str, namespace: str, timeout: float, poll_interval: float = 1.0) -> str:
58-
return self.get_status(name, namespace, timeout=timeout, poll_interval=poll_interval)["rayClusterName"]
58+
start_time = time.time()
59+
status = None
60+
61+
while not time.time() - start_time > timeout:
62+
status = self.get_status(name, namespace, timeout=timeout, poll_interval=poll_interval)
63+
if ray_cluster_name := status.get("rayClusterName"):
64+
return ray_cluster_name
65+
66+
logger.debug(
67+
f"RayJob {namespace}/{name} status does not yet contain rayClusterName. "
68+
f"Current status: {status}. Waiting..."
69+
)
70+
71+
time.sleep(poll_interval)
72+
73+
raise TimeoutError(
74+
f"Timed out ({timeout:.1f}s) waiting for rayClusterName in RayJob {namespace}/{name} status. "
75+
f"Last status: {status}"
76+
)
5977

6078
def get_job_submission_id(
6179
self, name: str, namespace: str, timeout: float, poll_interval: float = 1.0

tests/kuberay/conftest.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,19 @@ def k8s_with_kuberay(
134134
args.extend(
135135
[
136136
"--set",
137-
"featureGates\\[0\\].name=RayClusterStatusConditions",
137+
"featureGates[0].name=RayClusterStatusConditions",
138138
"--set",
139-
"featureGates\\[0\\].enabled=true",
139+
"featureGates[0].enabled=true",
140+
]
141+
)
142+
143+
if Version(kuberay_version) >= Version("1.5.0"):
144+
args.extend(
145+
[
146+
"--set",
147+
"featureGates[1].name=RayJobDeletionPolicy",
148+
"--set",
149+
"featureGates[1].enabled=true",
140150
]
141151
)
142152

0 commit comments

Comments
 (0)