BUILD 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. load("//bazel:python.bzl", "py_test_run_all_subdirectory")
  2. load("//bazel:python.bzl", "py_test_run_all_notebooks")
  3. load("//bazel:python.bzl", "doctest")
  4. load("@py_deps_buildkite//:requirements.bzl", ci_require = "requirement")
  5. load("@rules_python//python:defs.bzl", "py_test")
  6. exports_files(["test_myst_doc.py"])
  7. # --------------------------------------------------------------------
  8. # Tests from the doc directory.
  9. # Please keep these sorted alphabetically, but start with the
  10. # root directory.
  11. # --------------------------------------------------------------------
  12. py_test(
  13. name = "highly_parallel",
  14. size = "medium",
  15. srcs = ["test_myst_doc.py"],
  16. args = [
  17. "--path",
  18. "doc/source/ray-core/examples/highly_parallel.ipynb",
  19. ],
  20. data = ["//doc/source/ray-core/examples:core_examples"],
  21. main = "test_myst_doc.py",
  22. tags = [
  23. "exclusive",
  24. "highly_parallel",
  25. "team:ml",
  26. ],
  27. )
  28. py_test(
  29. name = "plot_hyperparameter",
  30. size = "small",
  31. srcs = ["test_myst_doc.py"],
  32. args = [
  33. "--path",
  34. "doc/source/ray-core/examples/plot_hyperparameter.ipynb",
  35. ],
  36. data = ["//doc/source/ray-core/examples:core_examples"],
  37. main = "test_myst_doc.py",
  38. tags = [
  39. "exclusive",
  40. "team:ml",
  41. ],
  42. )
  43. py_test(
  44. name = "automl_for_time_series",
  45. size = "medium",
  46. srcs = ["test_myst_doc.py"],
  47. args = [
  48. "--path",
  49. "doc/source/ray-core/examples/automl_for_time_series.ipynb",
  50. ],
  51. data = ["//doc/source/ray-core/examples:core_examples"],
  52. main = "test_myst_doc.py",
  53. tags = [
  54. "exclusive",
  55. "team:ml",
  56. "timeseries_libs",
  57. ],
  58. )
  59. py_test(
  60. name = "batch_prediction",
  61. size = "medium",
  62. srcs = ["test_myst_doc.py"],
  63. args = [
  64. "--path",
  65. "doc/source/ray-core/examples/batch_prediction.ipynb",
  66. ],
  67. data = ["//doc/source/ray-core/examples:core_examples"],
  68. main = "test_myst_doc.py",
  69. tags = [
  70. "exclusive",
  71. "team:ml",
  72. ],
  73. )
  74. py_test(
  75. name = "plot_parameter_server",
  76. size = "medium",
  77. srcs = ["test_myst_doc.py"],
  78. args = [
  79. "--path",
  80. "doc/source/ray-core/examples/plot_parameter_server.ipynb",
  81. ],
  82. data = ["//doc/source/ray-core/examples:core_examples"],
  83. main = "test_myst_doc.py",
  84. tags = [
  85. "exclusive",
  86. "team:ml",
  87. ],
  88. )
  89. py_test(
  90. name = "plot_pong_example",
  91. size = "large",
  92. srcs = ["test_myst_doc.py"],
  93. args = [
  94. "--path",
  95. "doc/source/ray-core/examples/plot_pong_example.ipynb",
  96. ],
  97. data = ["//doc/source/ray-core/examples:core_examples"],
  98. main = "test_myst_doc.py",
  99. tags = [
  100. "exclusive",
  101. "team:ml",
  102. ],
  103. )
  104. # --------------------------------------------------------------------
  105. # Test all doc/source/ray-observability/doc_code code included in rst/md files.
  106. # --------------------------------------------------------------------
  107. py_test_run_all_subdirectory(
  108. size = "medium",
  109. include = ["source/ray-observability/doc_code/*.py"],
  110. exclude = ["source/ray-observability/doc_code/ray-distributed-debugger.py"],
  111. extra_srcs = [],
  112. tags = [
  113. "exclusive",
  114. "team:core",
  115. ],
  116. )
  117. # --------------------------------------------------------------------
  118. # Test all doc/source/ray-core/doc_code code included in rst/md files.
  119. # --------------------------------------------------------------------
  120. py_test(
  121. name = "doc_code_runtime_env_example",
  122. size = "small",
  123. srcs = ["source/ray-core/doc_code/runtime_env_example.py"],
  124. main = "source/ray-core/doc_code/runtime_env_example.py",
  125. tags = [
  126. "exclusive",
  127. "post_wheel_build",
  128. "team:serve",
  129. ],
  130. )
  131. py_test(
  132. name = "doc_code_ray_oom_prevention",
  133. size = "medium",
  134. srcs = ["source/ray-core/doc_code/ray_oom_prevention.py"],
  135. main = "source/ray-core/doc_code/ray_oom_prevention.py",
  136. tags = [
  137. "exclusive",
  138. "mem_pressure",
  139. "team:core",
  140. ],
  141. )
  142. py_test_run_all_subdirectory(
  143. size = "medium",
  144. include = ["source/ray-core/doc_code/*.py"],
  145. exclude = [
  146. "source/ray-core/doc_code/runtime_env_example.py",
  147. "source/ray-core/doc_code/cross_language.py",
  148. "source/ray-core/doc_code/ray_oom_prevention.py",
  149. ],
  150. extra_srcs = [],
  151. tags = [
  152. "exclusive",
  153. "team:core",
  154. ],
  155. )
  156. # --------------------------------------------------------------------
  157. # Test all doc/source/serve/doc_code code included in rst/md files.
  158. # --------------------------------------------------------------------
  159. py_test_run_all_subdirectory(
  160. size = "medium",
  161. include = ["source/serve/doc_code/**/*.py"],
  162. exclude = [
  163. "source/serve/doc_code/aws_neuron_core_inference_serve.py",
  164. "source/serve/doc_code/aws_neuron_core_inference_serve_stable_diffusion.py",
  165. "source/serve/doc_code/intel_gaudi_inference_serve.py",
  166. "source/serve/doc_code/intel_gaudi_inference_serve_deepspeed.py",
  167. "source/serve/doc_code/intel_gaudi_inference_client.py",
  168. "source/serve/doc_code/distilbert.py",
  169. "source/serve/doc_code/stable_diffusion.py",
  170. "source/serve/doc_code/vllm_openai_example.py",
  171. "source/serve/doc_code/object_detection.py",
  172. "source/serve/doc_code/http_guide/streaming_example.py",
  173. "source/serve/doc_code/http_guide/websockets_example.py",
  174. "source/serve/doc_code/vllm_example.py",
  175. ],
  176. extra_srcs = [],
  177. tags = [
  178. "exclusive",
  179. "team:serve",
  180. ],
  181. )
  182. py_test_run_all_subdirectory(
  183. size = "medium",
  184. include = [
  185. "source/serve/doc_code/http_guide/streaming_example.py",
  186. "source/serve/doc_code/http_guide/websockets_example.py",
  187. ],
  188. env = {"RAY_SERVE_ENABLE_EXPERIMENTAL_STREAMING": "1"},
  189. exclude = [],
  190. extra_srcs = [],
  191. tags = [
  192. "exclusive",
  193. "team:serve",
  194. ],
  195. )
  196. py_test_run_all_subdirectory(
  197. size = "medium",
  198. include = [
  199. "source/serve/doc_code/distilbert.py",
  200. "source/serve/doc_code/stable_diffusion.py",
  201. "source/serve/doc_code/object_detection.py",
  202. ],
  203. env = {"RAY_SERVE_PROXY_READY_CHECK_TIMEOUT_S": "60"},
  204. exclude = [
  205. "source/serve/doc_code/aws_neuron_core_inference_serve.py",
  206. "source/serve/doc_code/aws_neuron_core_inference_serve_stable_diffusion.py",
  207. "source/serve/doc_code/intel_gaudi_inference_serve.py",
  208. "source/serve/doc_code/intel_gaudi_inference_serve_deepspeed.py",
  209. "source/serve/doc_code/intel_gaudi_inference_client.py",
  210. ],
  211. extra_srcs = [],
  212. tags = [
  213. "exclusive",
  214. "gpu",
  215. "team:serve",
  216. ],
  217. )
  218. # --------------------------------------------------------------------
  219. # Test all doc/source/tune/doc_code code included in rst/md files.
  220. # --------------------------------------------------------------------
  221. py_test_run_all_subdirectory(
  222. size = "medium",
  223. include = ["source/tune/doc_code/*.py"],
  224. exclude = [],
  225. extra_srcs = [],
  226. tags = [
  227. "exclusive",
  228. "team:ml",
  229. ],
  230. )
  231. # --------------------------------------------------------------------
  232. # Test all doc/source/rllib/doc_code code included in rst/md files.
  233. # --------------------------------------------------------------------
  234. py_test_run_all_subdirectory(
  235. size = "medium",
  236. include = ["source/rllib/doc_code/*.py"],
  237. exclude = [],
  238. extra_srcs = [],
  239. tags = [
  240. "exclusive",
  241. "team:rllib",
  242. ],
  243. )
  244. # --------------------------------------------------------------------
  245. # Test all doc/source/train/doc_code code included in rst/md files.
  246. # --------------------------------------------------------------------
  247. py_test_run_all_subdirectory(
  248. size = "large",
  249. include = ["source/train/doc_code/*.py"],
  250. exclude = [
  251. "source/train/doc_code/hvd_trainer.py", # CI do not have Horovod
  252. ],
  253. extra_srcs = [],
  254. tags = [
  255. "exclusive",
  256. "team:ml",
  257. ],
  258. )
  259. # --------------------------------------------------------------------
  260. # Test all doc/source/ray-overview/doc_test snippets, used on ray.io
  261. # --------------------------------------------------------------------
  262. py_test_run_all_subdirectory(
  263. size = "small",
  264. include = ["source/ray-overview/doc_test/*.py"],
  265. exclude = ["source/ray-overview/doc_test/ray_data.py"],
  266. extra_srcs = [],
  267. tags = [
  268. "exclusive",
  269. "team:ml",
  270. ],
  271. )
  272. # --------------------------------------------------------------------
  273. # Test all doc/source/data/doc_code code included in rst/md files.
  274. # --------------------------------------------------------------------
  275. py_test_run_all_subdirectory(
  276. size = "large",
  277. include = ["source/data/doc_code/*.py"],
  278. exclude = [],
  279. extra_srcs = [],
  280. tags = [
  281. "exclusive",
  282. "team:data",
  283. ],
  284. )
  285. # --------------------------------------------------------------------
  286. # Test all doc/source/ray-more-libs/doc_code code included in rst/md files.
  287. # --------------------------------------------------------------------
  288. py_test_run_all_subdirectory(
  289. size = "large",
  290. include = ["source/ray-more-libs/doc_code/*.py"],
  291. exclude = [],
  292. extra_srcs = [],
  293. tags = [
  294. "exclusive",
  295. "team:data",
  296. ],
  297. )
  298. # --------------
  299. # Run GPU tests
  300. # --------------
  301. py_test(
  302. name = "pytorch_resnet_finetune",
  303. size = "large",
  304. srcs = ["test_myst_doc.py"],
  305. args = [
  306. "--path",
  307. "doc/source/train/examples/pytorch/pytorch_resnet_finetune.ipynb",
  308. ],
  309. data = ["//doc/source/train/examples/pytorch:train_pytorch_examples"],
  310. main = "test_myst_doc.py",
  311. tags = [
  312. "exclusive",
  313. "gpu",
  314. "ray_air",
  315. "team:ml",
  316. ],
  317. )
  318. # --------------------------------------------------------------------
  319. # Test all doc/external code
  320. # --------------------------------------------------------------------
  321. py_test_run_all_subdirectory(
  322. size = "enormous",
  323. include = ["external/*.py"],
  324. exclude = ["external/test_hashes.py"],
  325. extra_srcs = [],
  326. tags = [
  327. "exclusive",
  328. "external",
  329. "team:ml",
  330. ],
  331. )
  332. py_test(
  333. name = "test_external_hashes",
  334. srcs = ["external/test_hashes.py"],
  335. data = glob(
  336. ["external/*.py"],
  337. exclude = ["external/test_hashes.py"],
  338. ),
  339. exec_compatible_with = ["//:hermetic_python"],
  340. main = "external/test_hashes.py",
  341. tags = ["team:ml"],
  342. deps = [
  343. ci_require("pytest"),
  344. ci_require("bazel-runfiles"),
  345. ],
  346. )
  347. # --------------------------------------------------------------------
  348. # Tests code snippets in user guides.
  349. # --------------------------------------------------------------------
  350. doctest(
  351. size = "large",
  352. files = glob(
  353. include = [
  354. "source/**/*.rst",
  355. "source/**/*.md",
  356. ],
  357. exclude = [
  358. "source/ray-contribute/getting-involved.rst",
  359. "source/ray-contribute/testing-tips.rst",
  360. "source/ray-core/handling-dependencies.rst",
  361. "source/ray-core/tasks/nested-tasks.rst",
  362. "source/ray-observability/user-guides/ray-tracing.rst",
  363. "source/ray-observability/user-guides/cli-sdk.rst",
  364. "source/serve/advanced-guides/inplace-updates.md",
  365. "source/serve/deploy-many-models/multi-app.md",
  366. "source/serve/production-guide/deploy-vm.md",
  367. "source/serve/production-guide/fault-tolerance.md",
  368. "source/data/batch_inference.rst",
  369. "source/data/transforming-data.rst",
  370. "source/train/**/*.rst",
  371. "source/train/**/*.md",
  372. "source/workflows/**/*.rst",
  373. "source/workflows/**/*.md",
  374. "source/rllib/**/*.rst",
  375. "source/rllib/**/*.md",
  376. "source/templates/04_finetuning_llms_with_deepspeed/README.md",
  377. ],
  378. ),
  379. tags = ["team:none"],
  380. )
  381. doctest(
  382. name = "doctest[train]",
  383. files = glob(
  384. include = [
  385. "source/train/**/*.rst",
  386. "source/train/**/*.md",
  387. ],
  388. exclude = [
  389. # GPU
  390. "source/train/user-guides/data-loading-preprocessing.rst",
  391. "source/train/user-guides/using-gpus.rst",
  392. "source/train/horovod.rst", # CI do not have Horovod
  393. ]
  394. ),
  395. tags = ["team:ml"],
  396. )
  397. doctest(
  398. name = "doctest[train]",
  399. files = [
  400. "source/train/user-guides/data-loading-preprocessing.rst",
  401. "source/train/user-guides/using-gpus.rst",
  402. ],
  403. gpu = True,
  404. tags = ["team:ml"],
  405. )
  406. doctest(
  407. name = "doctest[workflow]",
  408. files = glob(
  409. include = [
  410. "source/workflows/**/*.rst",
  411. "source/workflows/**/*.md",
  412. ],
  413. ),
  414. tags = ["team:core"],
  415. )
  416. doctest(
  417. name = "doctest[rllib]",
  418. size = "enormous",
  419. files = glob(
  420. include = [
  421. "source/rllib/**/*.rst",
  422. "source/rllib/**/*.md",
  423. ],
  424. exclude = [
  425. "source/rllib/rllib-env.rst",
  426. "source/rllib/rllib-sample-collection.rst",
  427. ],
  428. ),
  429. data = ["//rllib:cartpole-v1_large"],
  430. tags = ["team:rllib"],
  431. )
  432. doctest(
  433. files = [
  434. "source/data/batch_inference.rst",
  435. "source/data/transforming-data.rst",
  436. ],
  437. gpu = True,
  438. tags = ["team:data"],
  439. )