ray/release/ray_release/schema.json
Kai Fricke cac9d30909
[ci/release] Add schema validation for release test config (#22919)
To avoid breakage like in #22905, this PR adds schema validation to the release test package.
In a follow-up PR, we'll likely switch this to use pydantic instead.
2022-03-09 09:50:51 +00:00

174 lines
2.8 KiB
JSON

{
"$schema": "http://json-schema.org/draft-06/schema#",
"$ref": "#/definitions/Test",
"definitions": {
"Test": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"group": {
"type": "string"
},
"working_dir": {
"type": "string"
},
"legacy": {
"$ref": "#/definitions/Legacy"
},
"frequency": {
"type": "string",
"enum": [
"disabled",
"multi",
"nightly",
"weekly"
]
},
"team": {
"type": "string"
},
"driver_setup": {
"type": "string"
},
"cluster": {
"$ref": "#/definitions/Cluster"
},
"run": {
"$ref": "#/definitions/Run"
},
"smoke_test": {
"$ref": "#/definitions/SmokeTest"
},
"alert": {
"type": "string"
}
},
"required": [
"cluster",
"frequency",
"legacy",
"name",
"run",
"team",
"working_dir"
],
"title": "Test"
},
"Cluster": {
"type": "object",
"additionalProperties": false,
"properties": {
"cluster_env": {
"type": "string"
},
"cluster_compute": {
"type": "string"
},
"autosuspend_mins": {
"type": "integer",
"minimum": -1
},
"cloud_id": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"required": [
"cluster_compute",
"cluster_env"
],
"title": "Cluster"
},
"Legacy": {
"type": "object",
"additionalProperties": false,
"properties": {
"test_name": {
"type": "string"
},
"test_suite": {
"type": "string"
}
},
"required": [
"test_name",
"test_suite"
],
"title": "Legacy"
},
"Run": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"enum": [
"command",
"sdk_command",
"job",
"client"
]
},
"file_manager": {
"type": "string",
"enum": [
"sdk",
"client",
"job"
]
},
"wait_for_nodes": {
"$ref": "#/definitions/WaitForNodes"
},
"prepare": {
"type": "string"
},
"prepare_timeout": {
"type": "integer"
},
"script": {
"type": "string"
},
"timeout": {
"type": "integer"
},
"long_running": {
"type": "boolean"
}
},
"required": [
"script",
"timeout"
],
"title": "Run"
},
"WaitForNodes": {
"type": "object",
"additionalProperties": false,
"properties": {
"num_nodes": {
"type": "integer"
},
"timeout": {
"type": "integer"
}
},
"required": [
"num_nodes",
"timeout"
],
"title": "WaitForNodes"
},
"SmokeTest": {
"type": "object",
"additionalProperties": true,
"title": "SmokeTest"
}
}
}