pipeline.template.yml 71 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. # Default priority, just set to be explicit
  10. priority: 0
  11. env:
  12. CI_BAZEL_BUILD: 1
  13. CI_BAZEL_REMOTE_CACHE: $BAZEL_REMOTE_CACHE
  14. CI_BAZEL_LTO: 1
  15. steps:
  16. - group: Builds
  17. key: builds
  18. steps:
  19. - id: build-x86_64
  20. label: ":bazel: Build x86_64"
  21. command: bin/ci-builder run min bin/pyactivate -m ci.test.build
  22. inputs:
  23. - "*"
  24. artifact_paths: bazel-explain.log
  25. depends_on: []
  26. timeout_in_minutes: 60
  27. agents:
  28. queue: builder-linux-x86_64
  29. - id: build-aarch64
  30. label: ":bazel: Build aarch64"
  31. command: bin/ci-builder run min bin/pyactivate -m ci.test.build
  32. inputs:
  33. - "*"
  34. artifact_paths: bazel-explain.log
  35. depends_on: []
  36. timeout_in_minutes: 60
  37. agents:
  38. queue: builder-linux-aarch64-mem
  39. - id: build-x86_64-asan
  40. label: ":bazel: Build x86_64 (ASan)"
  41. command: bin/ci-builder run min bin/pyactivate -m ci.test.build
  42. inputs:
  43. - "*"
  44. artifact_paths: bazel-explain.log
  45. depends_on: []
  46. timeout_in_minutes: 60
  47. agents:
  48. queue: builder-linux-x86_64
  49. env:
  50. CI_SANITIZER: address
  51. sanitizer: skip
  52. branches: "main"
  53. - id: build-aarch64-asan
  54. label: ":bazel: Build aarch64 (ASan)"
  55. command: bin/ci-builder run min bin/pyactivate -m ci.test.build
  56. inputs:
  57. - "*"
  58. artifact_paths: bazel-explain.log
  59. depends_on: []
  60. timeout_in_minutes: 60
  61. agents:
  62. queue: builder-linux-aarch64-mem
  63. env:
  64. CI_SANITIZER: address
  65. sanitizer: skip
  66. branches: "main"
  67. - group: Linters
  68. key: linters
  69. steps:
  70. - id: closed-issues-detect
  71. timeout_in_minutes: 30
  72. label: Detect references to already closed issues
  73. command: bin/ci-builder run stable bin/ci-closed-issues-detect
  74. depends_on: []
  75. agents:
  76. queue: hetzner-aarch64-4cpu-8gb
  77. branches: "main"
  78. sanitizer: skip
  79. - id: unused-deps
  80. label: Unused dependencies
  81. command: bin/ci-builder run nightly bin/unused-deps
  82. depends_on: []
  83. timeout_in_minutes: 45
  84. agents:
  85. queue: hetzner-aarch64-8cpu-16gb
  86. sanitizer: skip
  87. - id: cargo-deny-check-advisories
  88. label: Security advisories
  89. command: bin/ci-builder run stable cargo deny check advisories
  90. depends_on: []
  91. timeout_in_minutes: 20
  92. agents:
  93. queue: hetzner-aarch64-4cpu-8gb
  94. sanitizer: skip
  95. - id: lint-cargo-doc-test
  96. label: Cargo doc tests
  97. command: bin/ci-builder run stable ci/test/lint-cargo-doc-test.sh
  98. inputs:
  99. - Cargo.lock
  100. - Cargo.toml
  101. - "**/Cargo.toml"
  102. - "**/*.rs"
  103. depends_on: []
  104. timeout_in_minutes: 40
  105. agents:
  106. queue: hetzner-aarch64-16cpu-32gb
  107. coverage: skip
  108. sanitizer: skip
  109. - id: miri-test
  110. label: ":rust: Miri test (full)"
  111. depends_on: []
  112. timeout_in_minutes: 600
  113. env:
  114. CI_BAZEL_BUILD: 0
  115. plugins:
  116. - ./ci/plugins/mzcompose:
  117. composition: cargo-test
  118. args: [--miri-full]
  119. agents:
  120. queue: hetzner-aarch64-16cpu-32gb
  121. sanitizer: skip
  122. - group: Benchmarks
  123. key: benchmark
  124. steps:
  125. - id: feature-benchmark
  126. label: "Feature benchmark against merge base or 'latest'"
  127. depends_on: build-x86_64
  128. timeout_in_minutes: 720
  129. parallelism: 8
  130. agents:
  131. queue: hetzner-x86-64-dedi-16cpu-64gb
  132. plugins:
  133. - ./ci/plugins/mzcompose:
  134. composition: feature-benchmark
  135. args:
  136. - --other-tag
  137. # common-ancestor will default to latest if not in a PR
  138. - common-ancestor
  139. - id: scalability-benchmark-dml-dql
  140. label: "Scalability benchmark (read & write) against merge base or 'latest'"
  141. depends_on: build-x86_64
  142. timeout_in_minutes: 240
  143. agents:
  144. # Larger instance is more stable in performance
  145. queue: hetzner-x86-64-dedi-16cpu-64gb
  146. plugins:
  147. - ./ci/plugins/mzcompose:
  148. composition: scalability
  149. args:
  150. - --target
  151. - HEAD
  152. - --target
  153. - common-ancestor
  154. - --regression-against
  155. - common-ancestor
  156. - --workload-group-marker
  157. - "DmlDqlWorkload"
  158. - --max-concurrency
  159. - "256"
  160. - id: scalability-benchmark-ddl
  161. label: "Scalability benchmark (DDL) against merge base or 'latest'"
  162. depends_on: build-x86_64
  163. timeout_in_minutes: 1200
  164. agents:
  165. # Larger instance is more stable in performance
  166. queue: hetzner-x86-64-dedi-16cpu-64gb
  167. plugins:
  168. - ./ci/plugins/mzcompose:
  169. composition: scalability
  170. args:
  171. - --target
  172. - HEAD
  173. - --target
  174. - common-ancestor
  175. - --regression-against
  176. - common-ancestor
  177. - --workload-group-marker
  178. - "DdlWorkload"
  179. - --count
  180. - "128"
  181. - --exponent-base
  182. - "4"
  183. - --max-concurrency
  184. - "64"
  185. - id: scalability-benchmark-connection
  186. label: "Scalability benchmark (connection) against merge base or 'latest'"
  187. depends_on: build-x86_64
  188. timeout_in_minutes: 180
  189. agents:
  190. # Larger instance is more stable in performance
  191. queue: hetzner-x86-64-dedi-16cpu-64gb
  192. plugins:
  193. - ./ci/plugins/mzcompose:
  194. composition: scalability
  195. args:
  196. - --target
  197. - HEAD
  198. - --target
  199. - common-ancestor
  200. - --regression-against
  201. - common-ancestor
  202. - --workload-group-marker
  203. - "ConnectionWorkload"
  204. - --exponent-base
  205. - "2.5"
  206. - --max-concurrency
  207. - "2048"
  208. - id: parallel-benchmark
  209. label: "Parallel Benchmark"
  210. depends_on: build-x86_64
  211. timeout_in_minutes: 120
  212. agents:
  213. # Larger instance is more stable in performance
  214. queue: hetzner-x86-64-dedi-16cpu-64gb
  215. plugins:
  216. - ./ci/plugins/mzcompose:
  217. composition: parallel-benchmark
  218. args:
  219. - --other-tag
  220. - common-ancestor
  221. - group: Kafka
  222. key: kafka
  223. steps:
  224. - id: kafka-matrix
  225. label: Kafka smoke test against previous Kafka versions
  226. depends_on: build-aarch64
  227. timeout_in_minutes: 120
  228. parallelism: 2
  229. agents:
  230. queue: hetzner-aarch64-4cpu-8gb
  231. plugins:
  232. - ./ci/plugins/mzcompose:
  233. composition: kafka-matrix
  234. - id: kafka-multi-broker
  235. label: Kafka multi-broker test
  236. depends_on: build-aarch64
  237. timeout_in_minutes: 30
  238. agents:
  239. queue: hetzner-aarch64-4cpu-8gb
  240. plugins:
  241. - ./ci/plugins/mzcompose:
  242. composition: kafka-multi-broker
  243. - id: redpanda-resumption
  244. label: ":panda_face: resumption tests"
  245. depends_on: build-aarch64
  246. timeout_in_minutes: 30
  247. plugins:
  248. - ./ci/plugins/mzcompose:
  249. composition: kafka-resumption
  250. args: [--redpanda]
  251. agents:
  252. queue: hetzner-aarch64-4cpu-8gb
  253. - group: Testdrive
  254. key: testdrive
  255. steps:
  256. - id: redpanda-testdrive
  257. label: ":panda_face: :racing_car: testdrive"
  258. depends_on: build-aarch64
  259. timeout_in_minutes: 180
  260. agents:
  261. queue: hetzner-aarch64-4cpu-8gb
  262. plugins:
  263. - ./ci/plugins/mzcompose:
  264. composition: testdrive
  265. args: [--redpanda, --slow]
  266. - id: testdrive-partitions-5
  267. label: ":racing_car: testdrive with --kafka-default-partitions 5"
  268. depends_on: build-aarch64
  269. timeout_in_minutes: 180
  270. agents:
  271. queue: hetzner-aarch64-4cpu-8gb
  272. plugins:
  273. - ./ci/plugins/mzcompose:
  274. composition: testdrive
  275. args: [--kafka-default-partitions=5, --slow]
  276. - id: testdrive-replicas-4
  277. label: ":racing_car: testdrive 4 replicas"
  278. depends_on: build-aarch64
  279. timeout_in_minutes: 180
  280. agents:
  281. queue: hetzner-aarch64-8cpu-16gb
  282. plugins:
  283. - ./ci/plugins/mzcompose:
  284. composition: testdrive
  285. args: [--replicas=4, --slow]
  286. - id: testdrive-size-1
  287. label: ":racing_car: testdrive with SIZE 1"
  288. depends_on: build-aarch64
  289. timeout_in_minutes: 360
  290. agents:
  291. queue: hetzner-aarch64-4cpu-8gb
  292. plugins:
  293. - ./ci/plugins/mzcompose:
  294. composition: testdrive
  295. args: [--default-size=1, --slow]
  296. - id: testdrive-size-8
  297. label: ":racing_car: testdrive with SIZE 8"
  298. depends_on: build-aarch64
  299. timeout_in_minutes: 180
  300. agents:
  301. queue: hetzner-aarch64-8cpu-16gb
  302. plugins:
  303. - ./ci/plugins/mzcompose:
  304. composition: testdrive
  305. args: [--default-size=8, --slow]
  306. - id: persistence-testdrive
  307. label: ":racing_car: testdrive with --persistent-user-tables"
  308. depends_on: build-aarch64
  309. timeout_in_minutes: 30
  310. agents:
  311. queue: hetzner-aarch64-4cpu-8gb
  312. plugins:
  313. - ./ci/plugins/mzcompose:
  314. composition: testdrive
  315. args: [--persistent-user-tables, --slow]
  316. skip: "Persistence tests disabled"
  317. - id: azurite-testdrive
  318. label: "testdrive with :azure: blob store"
  319. depends_on: build-aarch64
  320. timeout_in_minutes: 180
  321. agents:
  322. # Larger agent because Azurite is slow
  323. queue: hetzner-aarch64-8cpu-16gb
  324. plugins:
  325. - ./ci/plugins/mzcompose:
  326. composition: testdrive
  327. args: [--azurite, --slow]
  328. - id: azurite-testdrive-size-8
  329. label: ":racing_car: testdrive with SIZE 8 and :azure: blob store"
  330. depends_on: build-aarch64
  331. timeout_in_minutes: 180
  332. parallelism: 2
  333. agents:
  334. queue: hetzner-aarch64-8cpu-16gb
  335. plugins:
  336. - ./ci/plugins/mzcompose:
  337. composition: testdrive
  338. args: [--default-size=8, --azurite, --slow]
  339. - id: testdrive-in-cloudtest
  340. label: "Full Testdrive in Cloudtest (K8s)"
  341. depends_on: build-aarch64
  342. timeout_in_minutes: 180
  343. parallelism: 2
  344. env:
  345. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster.yaml"
  346. agents:
  347. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  348. # queue: hetzner-aarch64-4cpu-8gb
  349. queue: linux-aarch64-medium
  350. plugins:
  351. - ./ci/plugins/cloudtest:
  352. # Uses .td-file based parallelism instead
  353. args: [-m=long, test/cloudtest/test_full_testdrive.py, --no-test-parallelism]
  354. sanitizer: skip
  355. - group: Limits
  356. key: limits-group
  357. steps:
  358. - id: limits
  359. label: "Product limits"
  360. depends_on: build-x86_64
  361. agents:
  362. queue: hetzner-x86-64-dedi-16cpu-64gb
  363. plugins:
  364. - ./ci/plugins/mzcompose:
  365. composition: limits
  366. run: main
  367. timeout_in_minutes: 180
  368. parallelism: 2
  369. - id: limits-instance-size
  370. label: "Instance size limits"
  371. depends_on: build-x86_64
  372. agents:
  373. queue: hetzner-x86-64-dedi-8cpu-32gb
  374. plugins:
  375. - ./ci/plugins/mzcompose:
  376. composition: limits
  377. run: instance-size
  378. timeout_in_minutes: 120
  379. - id: bounded-memory
  380. label: "Bounded Memory"
  381. depends_on: build-aarch64
  382. timeout_in_minutes: 90
  383. parallelism: 2
  384. agents:
  385. queue: hetzner-aarch64-4cpu-8gb
  386. plugins:
  387. - ./ci/plugins/mzcompose:
  388. composition: bounded-memory
  389. - id: bounded-memory-search
  390. label: "Bounded Memory Search (materialized only)"
  391. depends_on: build-aarch64
  392. timeout_in_minutes: 150
  393. parallelism: 8
  394. # disabled by default
  395. skip: true
  396. agents:
  397. queue: hetzner-aarch64-8cpu-16gb
  398. plugins:
  399. - ./ci/plugins/mzcompose:
  400. composition: bounded-memory
  401. run: minimization-search
  402. args:
  403. [
  404. --materialized-memory-search-step=0.3,
  405. --clusterd-memory-search-step=0,
  406. --materialized-memory-lower-bound-in-gb=0.5,
  407. --clusterd-memory-lower-bound-in-gb=0.5
  408. ]
  409. - group: Upsert
  410. key: upsert
  411. steps:
  412. - id: upsert-compaction-enabled
  413. label: Upsert (compaction enabled)
  414. depends_on: build-aarch64
  415. timeout_in_minutes: 60
  416. plugins:
  417. - ./ci/plugins/mzcompose:
  418. composition: upsert
  419. agents:
  420. queue: hetzner-aarch64-4cpu-8gb
  421. - id: upsert-compaction-disabled
  422. label: Upsert (compaction disabled)
  423. depends_on: build-aarch64
  424. timeout_in_minutes: 60
  425. plugins:
  426. - ./ci/plugins/mzcompose:
  427. composition: upsert
  428. args: [--compaction-disabled]
  429. agents:
  430. queue: hetzner-aarch64-4cpu-8gb
  431. - id: ssh-connection-extended
  432. label: Extended SSH connection tests
  433. depends_on: build-aarch64
  434. timeout_in_minutes: 45
  435. plugins:
  436. - ./ci/plugins/mzcompose:
  437. composition: ssh-connection
  438. args: [--extended]
  439. agents:
  440. queue: hetzner-aarch64-4cpu-8gb
  441. - group: Zippy
  442. key: zippy
  443. steps:
  444. - id: zippy-kafka-sources
  445. label: "Zippy Kafka Sources"
  446. depends_on: build-aarch64
  447. timeout_in_minutes: 120
  448. agents:
  449. queue: hetzner-aarch64-4cpu-8gb
  450. plugins:
  451. - ./ci/plugins/mzcompose:
  452. composition: zippy
  453. args: [--scenario=KafkaSources, --actions=10000, --max-execution-time=30m]
  454. - id: zippy-kafka-sources-azurite
  455. label: "Zippy Kafka Sources with :azure: blob store"
  456. depends_on: build-x86_64
  457. timeout_in_minutes: 120
  458. agents:
  459. # Azurite is rather slow, prevent timeouts by using dedicated CPUs
  460. queue: hetzner-x86-64-dedi-16cpu-64gb
  461. plugins:
  462. - ./ci/plugins/mzcompose:
  463. composition: zippy
  464. args: [--scenario=KafkaSources, --actions=10000, --max-execution-time=30m, --azurite]
  465. - id: zippy-kafka-parallel-insert
  466. label: "Zippy Kafka Parallel Insert"
  467. depends_on: build-aarch64
  468. timeout_in_minutes: 120
  469. agents:
  470. queue: hetzner-aarch64-4cpu-8gb
  471. plugins:
  472. - ./ci/plugins/mzcompose:
  473. composition: zippy
  474. args: [--scenario=KafkaParallelInsert, --transaction-isolation=serializable, --actions=10000, --max-execution-time=30m]
  475. - id: zippy-kafka-parallel-insert-azurite
  476. label: "Zippy Kafka Parallel Insert with :azure: blob store"
  477. depends_on: build-aarch64
  478. timeout_in_minutes: 120
  479. agents:
  480. queue: hetzner-aarch64-4cpu-8gb
  481. plugins:
  482. - ./ci/plugins/mzcompose:
  483. composition: zippy
  484. args: [--scenario=KafkaParallelInsert, --transaction-isolation=serializable, --actions=10000, --max-execution-time=30m, --azurite]
  485. - id: zippy-user-tables
  486. label: "Zippy User Tables"
  487. depends_on: build-aarch64
  488. timeout_in_minutes: 180
  489. agents:
  490. queue: hetzner-aarch64-16cpu-32gb
  491. plugins:
  492. - ./ci/plugins/mzcompose:
  493. composition: zippy
  494. # Azurite is too slow, takes a lot of memory in this test
  495. args: [--scenario=UserTables, --actions=10000, --max-execution-time=30m]
  496. - id: zippy-postgres-cdc
  497. label: "Zippy Postgres CDC"
  498. depends_on: build-aarch64
  499. timeout_in_minutes: 120
  500. agents:
  501. queue: hetzner-aarch64-16cpu-32gb
  502. plugins:
  503. - ./ci/plugins/mzcompose:
  504. composition: zippy
  505. args: [--scenario=PostgresCdc, --actions=10000, --max-execution-time=30m, --azurite]
  506. - id: zippy-mysql-cdc
  507. label: "Zippy MySQL CDC"
  508. depends_on: build-aarch64
  509. timeout_in_minutes: 120
  510. agents:
  511. queue: hetzner-aarch64-8cpu-16gb
  512. plugins:
  513. - ./ci/plugins/mzcompose:
  514. composition: zippy
  515. args: [--scenario=MySqlCdc, --actions=10000, --max-execution-time=30m, --azurite]
  516. - id: zippy-debezium-postgres
  517. label: "Zippy Debezium Postgres"
  518. depends_on: build-aarch64
  519. timeout_in_minutes: 120
  520. agents:
  521. queue: hetzner-aarch64-8cpu-16gb
  522. plugins:
  523. - ./ci/plugins/mzcompose:
  524. composition: zippy
  525. args: [--scenario=DebeziumPostgres, --actions=10000, --max-execution-time=30m]
  526. - id: zippy-cluster-replicas
  527. label: "Zippy Cluster Replicas"
  528. depends_on: build-aarch64
  529. timeout_in_minutes: 120
  530. agents:
  531. queue: hetzner-aarch64-8cpu-16gb
  532. plugins:
  533. - ./ci/plugins/mzcompose:
  534. composition: zippy
  535. args: [--scenario=ClusterReplicas, --actions=10000, --max-execution-time=30m]
  536. - id: zippy-crdb-latest
  537. label: "Zippy w/ latest CRDB"
  538. depends_on: build-aarch64
  539. timeout_in_minutes: 120
  540. agents:
  541. queue: hetzner-aarch64-8cpu-16gb
  542. plugins:
  543. - ./ci/plugins/mzcompose:
  544. composition: zippy
  545. # TODO: Reenable --cockroach-tag=latest when https://github.com/cockroachdb/cockroach/issues/136678 is fixed
  546. args: [--scenario=KafkaSources, --actions=10000, --max-execution-time=30m]
  547. - id: zippy-alter-connection
  548. label: "Zippy w/ alter connection"
  549. depends_on: build-aarch64
  550. timeout_in_minutes: 120
  551. agents:
  552. queue: hetzner-aarch64-8cpu-16gb
  553. plugins:
  554. - ./ci/plugins/mzcompose:
  555. composition: zippy
  556. args: [--scenario=AlterConnectionWithKafkaSources, --actions=10000, --max-execution-time=30m]
  557. - group: Source Resumption tests
  558. key: source-resumption-tests
  559. steps:
  560. - id: kafka-resumption
  561. label: Kafka resumption tests
  562. depends_on: build-aarch64
  563. timeout_in_minutes: 30
  564. plugins:
  565. - ./ci/plugins/mzcompose:
  566. composition: kafka-resumption
  567. agents:
  568. queue: hetzner-aarch64-8cpu-16gb
  569. - id: mysql-cdc-resumption
  570. label: "MySQL CDC resumption tests"
  571. parallelism: 2
  572. depends_on: build-aarch64
  573. timeout_in_minutes: 60
  574. inputs: [test/mysql-cdc-resumption]
  575. plugins:
  576. - ./ci/plugins/mzcompose:
  577. composition: mysql-cdc-resumption
  578. agents:
  579. queue: hetzner-aarch64-8cpu-16gb
  580. - id: pg-cdc-resumption
  581. label: "Postgres CDC resumption tests"
  582. parallelism: 2
  583. depends_on: build-aarch64
  584. timeout_in_minutes: 60
  585. inputs: [test/pg-cdc-resumption]
  586. plugins:
  587. - ./ci/plugins/mzcompose:
  588. composition: pg-cdc-resumption
  589. agents:
  590. queue: hetzner-aarch64-8cpu-16gb
  591. - group: CDC with old source syntax
  592. key: cdc-old-source-syntax
  593. steps:
  594. - id: mysql-cdc-old-syntax
  595. label: MySQL CDC tests (before source versioning)
  596. depends_on: build-aarch64
  597. timeout_in_minutes: 60
  598. plugins:
  599. - ./ci/plugins/mzcompose:
  600. composition: mysql-cdc-old-syntax
  601. agents:
  602. queue: hetzner-aarch64-4cpu-8gb
  603. - id: mysql-cdc-migration
  604. label: MySQL CDC source-versioning migration tests
  605. depends_on: build-aarch64
  606. timeout_in_minutes: 360
  607. plugins:
  608. - ./ci/plugins/mzcompose:
  609. composition: mysql-cdc-old-syntax
  610. run: migration
  611. agents:
  612. queue: hetzner-aarch64-4cpu-8gb
  613. - id: mysql-cdc-resumption-old-syntax
  614. label: MySQL CDC resumption tests (before source versioning)
  615. depends_on: build-aarch64
  616. timeout_in_minutes: 60
  617. plugins:
  618. - ./ci/plugins/mzcompose:
  619. composition: mysql-cdc-resumption-old-syntax
  620. agents:
  621. queue: hetzner-aarch64-8cpu-16gb
  622. - id: mysql-rtr-old-syntax
  623. label: MySQL RTR tests (before source versioning)
  624. depends_on: build-aarch64
  625. timeout_in_minutes: 30
  626. plugins:
  627. - ./ci/plugins/mzcompose:
  628. composition: mysql-rtr-old-syntax
  629. agents:
  630. queue: hetzner-aarch64-4cpu-8gb
  631. - id: pg-cdc-old-syntax
  632. label: Postgres CDC tests (before source versioning)
  633. depends_on: build-aarch64
  634. timeout_in_minutes: 60
  635. plugins:
  636. - ./ci/plugins/mzcompose:
  637. composition: pg-cdc-old-syntax
  638. agents:
  639. queue: hetzner-aarch64-4cpu-8gb
  640. # the mzbuild postgres version will be used, which depends on the Dockerfile specification
  641. - id: pg-cdc-migration
  642. label: Postgres CDC source-versioning migration tests
  643. depends_on: build-aarch64
  644. timeout_in_minutes: 360
  645. plugins:
  646. - ./ci/plugins/mzcompose:
  647. composition: pg-cdc-old-syntax
  648. run: migration
  649. agents:
  650. queue: hetzner-aarch64-4cpu-8gb
  651. - id: pg-cdc-resumption-old-syntax
  652. label: Postgres CDC resumption tests (before source versioning)
  653. depends_on: build-aarch64
  654. timeout_in_minutes: 60
  655. plugins:
  656. - ./ci/plugins/mzcompose:
  657. composition: pg-cdc-resumption-old-syntax
  658. agents:
  659. queue: hetzner-aarch64-8cpu-16gb
  660. - id: pg-rtr-old-syntax
  661. label: Postgres RTR tests (before source versioning)
  662. depends_on: build-aarch64
  663. timeout_in_minutes: 30
  664. plugins:
  665. - ./ci/plugins/mzcompose:
  666. composition: pg-rtr-old-syntax
  667. agents:
  668. queue: hetzner-aarch64-4cpu-8gb
  669. - id: testdrive-old-kafka-src-syntax
  670. label: "Testdrive (before Kafka source versioning) with :azure: blob store"
  671. depends_on: build-aarch64
  672. timeout_in_minutes: 180
  673. plugins:
  674. - ./ci/plugins/mzcompose:
  675. composition: testdrive-old-kafka-src-syntax
  676. args: [--azurite]
  677. agents:
  678. queue: hetzner-aarch64-4cpu-8gb
  679. - id: testdrive-kafka-migration
  680. label: "Testdrive (before Kafka source versioning) migration tests"
  681. depends_on: build-aarch64
  682. timeout_in_minutes: 180
  683. plugins:
  684. - ./ci/plugins/mzcompose:
  685. composition: testdrive-old-kafka-src-syntax
  686. run: migration
  687. agents:
  688. queue: hetzner-aarch64-16cpu-32gb
  689. - group: AWS
  690. key: aws
  691. steps:
  692. - id: aws-real
  693. label: AWS (Real)
  694. depends_on: build-aarch64
  695. timeout_in_minutes: 30
  696. retry:
  697. automatic:
  698. - exit_status: 1
  699. limit: 1
  700. agents:
  701. # Because of scratch-aws-access
  702. queue: linux-aarch64-small
  703. plugins:
  704. - ./ci/plugins/scratch-aws-access: ~
  705. - ./ci/plugins/mzcompose:
  706. composition: aws
  707. - id: aws-localstack
  708. label: AWS (Localstack)
  709. depends_on: build-aarch64
  710. timeout_in_minutes: 30
  711. agents:
  712. queue: hetzner-aarch64-4cpu-8gb
  713. plugins:
  714. - ./ci/plugins/mzcompose:
  715. composition: aws-localstack
  716. - id: secrets-local-file
  717. label: "Secrets Local File"
  718. depends_on: build-aarch64
  719. timeout_in_minutes: 30
  720. agents:
  721. queue: hetzner-aarch64-4cpu-8gb
  722. plugins:
  723. - ./ci/plugins/mzcompose:
  724. composition: secrets-local-file
  725. - group: "Platform checks"
  726. key: platform-checks
  727. steps:
  728. - id: checks-no-restart-no-upgrade-azurite
  729. label: "Checks without restart or upgrade with :azure: blob store"
  730. depends_on: build-aarch64
  731. inputs: [misc/python/materialize/checks]
  732. timeout_in_minutes: 45
  733. parallelism: 4
  734. agents:
  735. queue: hetzner-aarch64-8cpu-16gb
  736. plugins:
  737. - ./ci/plugins/mzcompose:
  738. composition: platform-checks
  739. args: [--scenario=NoRestartNoUpgrade, "--seed=$BUILDKITE_JOB_ID", --features=azurite]
  740. - id: checks-restart-entire-mz
  741. label: "Checks + restart of the entire Mz"
  742. depends_on: build-aarch64
  743. timeout_in_minutes: 180
  744. # Sometimes runs into query timeouts or entire test timeouts with parallelism 1, too much state, same in all other platform-checks
  745. parallelism: 3
  746. agents:
  747. # A larger instance is needed due to frequent OOMs, same in all other platform-checks
  748. queue: hetzner-aarch64-8cpu-16gb
  749. plugins:
  750. - ./ci/plugins/mzcompose:
  751. composition: platform-checks
  752. args: [--scenario=RestartEntireMz, "--seed=$BUILDKITE_JOB_ID", --features=azurite]
  753. - id: checks-restart-environmentd-clusterd-storage
  754. label: "Checks + restart of environmentd & storage clusterd"
  755. depends_on: build-aarch64
  756. inputs: [misc/python/materialize/checks]
  757. timeout_in_minutes: 45
  758. parallelism: 3
  759. agents:
  760. queue: hetzner-aarch64-8cpu-16gb
  761. plugins:
  762. - ./ci/plugins/mzcompose:
  763. composition: platform-checks
  764. args:
  765. [
  766. --scenario=RestartEnvironmentdClusterdStorage,
  767. --default-replication-factor=1, # faster
  768. "--seed=$BUILDKITE_JOB_ID",
  769. ]
  770. - id: checks-restart-environmentd-clusterd-storage-azurite
  771. label: "Checks + restart of environmentd & storage clusterd with :azure: blob store"
  772. depends_on: build-aarch64
  773. inputs: [misc/python/materialize/checks]
  774. timeout_in_minutes: 45
  775. parallelism: 4
  776. agents:
  777. queue: hetzner-aarch64-8cpu-16gb
  778. plugins:
  779. - ./ci/plugins/mzcompose:
  780. composition: platform-checks
  781. args:
  782. [
  783. --scenario=RestartEnvironmentdClusterdStorage,
  784. "--seed=$BUILDKITE_JOB_ID",
  785. --features=azurite,
  786. ]
  787. - id: checks-backup-rollback
  788. label: "Checks + backup + rollback to previous"
  789. depends_on: build-aarch64
  790. timeout_in_minutes: 180
  791. parallelism: 3
  792. agents:
  793. queue: hetzner-aarch64-8cpu-16gb
  794. plugins:
  795. - ./ci/plugins/mzcompose:
  796. composition: platform-checks
  797. args: [--scenario=BackupAndRestoreToPreviousState, "--seed=$BUILDKITE_JOB_ID"]
  798. - id: checks-parallel-drop-create-default-replica
  799. label: "Checks parallel + DROP/CREATE replica"
  800. depends_on: build-aarch64
  801. timeout_in_minutes: 180
  802. parallelism: 3
  803. agents:
  804. queue: hetzner-aarch64-8cpu-16gb
  805. plugins:
  806. - ./ci/plugins/mzcompose:
  807. composition: platform-checks
  808. args: [--scenario=DropCreateDefaultReplica, --execution-mode=parallel, "--seed=$BUILDKITE_JOB_ID"]
  809. - id: checks-parallel-restart-clusterd-compute
  810. label: "Checks parallel + restart compute clusterd"
  811. depends_on: build-aarch64
  812. timeout_in_minutes: 180
  813. parallelism: 3
  814. agents:
  815. queue: hetzner-aarch64-8cpu-16gb
  816. plugins:
  817. - ./ci/plugins/mzcompose:
  818. composition: platform-checks
  819. args: [--scenario=RestartClusterdCompute, --execution-mode=parallel, "--seed=$BUILDKITE_JOB_ID"]
  820. - id: checks-parallel-restart-entire-mz
  821. label: "Checks parallel + restart of the entire Mz"
  822. depends_on: build-aarch64
  823. timeout_in_minutes: 180
  824. parallelism: 3
  825. agents:
  826. queue: hetzner-aarch64-8cpu-16gb
  827. plugins:
  828. - ./ci/plugins/mzcompose:
  829. composition: platform-checks
  830. args: [--scenario=RestartEntireMz, --execution-mode=parallel, "--seed=$BUILDKITE_JOB_ID"]
  831. - id: checks-parallel-restart-environmentd-clusterd-storage
  832. label: "Checks parallel + restart of environmentd & storage clusterd"
  833. depends_on: build-aarch64
  834. timeout_in_minutes: 180
  835. parallelism: 3
  836. agents:
  837. queue: hetzner-aarch64-8cpu-16gb
  838. plugins:
  839. - ./ci/plugins/mzcompose:
  840. composition: platform-checks
  841. args: [--scenario=RestartEnvironmentdClusterdStorage, --execution-mode=parallel, "--seed=$BUILDKITE_JOB_ID"]
  842. - id: checks-parallel-kill-clusterd-storage
  843. label: "Checks parallel + kill storage clusterd"
  844. depends_on: build-aarch64
  845. timeout_in_minutes: 180
  846. parallelism: 3
  847. agents:
  848. queue: hetzner-aarch64-8cpu-16gb
  849. plugins:
  850. - ./ci/plugins/mzcompose:
  851. composition: platform-checks
  852. args: [--scenario=KillClusterdStorage, --execution-mode=parallel, "--seed=$BUILDKITE_JOB_ID"]
  853. - id: checks-upgrade-entire-mz
  854. label: "Checks upgrade, whole-Mz restart"
  855. depends_on: build-aarch64
  856. timeout_in_minutes: 180
  857. parallelism: 3
  858. agents:
  859. queue: hetzner-aarch64-8cpu-16gb
  860. plugins:
  861. - ./ci/plugins/mzcompose:
  862. composition: platform-checks
  863. args: [--scenario=UpgradeEntireMz, "--seed=$BUILDKITE_JOB_ID"]
  864. - id: checks-self-managed-upgrade
  865. label: "Checks Self-Managed upgrade, whole-Mz restart"
  866. depends_on: build-aarch64
  867. timeout_in_minutes: 180
  868. parallelism: 3
  869. agents:
  870. queue: hetzner-aarch64-8cpu-16gb
  871. plugins:
  872. - ./ci/plugins/mzcompose:
  873. composition: platform-checks
  874. args: [--scenario=UpgradeEntireMzFromLatestSelfManaged, "--seed=$BUILDKITE_JOB_ID"]
  875. - id: checks-self-managed-upgrade-previous
  876. label: "Checks Self-Managed upgrade from previous, whole-Mz restart"
  877. depends_on: build-aarch64
  878. timeout_in_minutes: 180
  879. parallelism: 3
  880. agents:
  881. queue: hetzner-aarch64-8cpu-16gb
  882. plugins:
  883. - ./ci/plugins/mzcompose:
  884. composition: platform-checks
  885. args: [--scenario=UpgradeEntireMzFromPreviousSelfManaged, "--seed=$BUILDKITE_JOB_ID"]
  886. - id: checks-preflight-check-rollback
  887. label: "Checks preflight-check and roll back upgrade"
  888. depends_on: build-aarch64
  889. timeout_in_minutes: 180
  890. parallelism: 3
  891. agents:
  892. queue: hetzner-aarch64-8cpu-16gb
  893. plugins:
  894. - ./ci/plugins/mzcompose:
  895. composition: platform-checks
  896. args: [--scenario=PreflightCheckRollback, "--seed=$BUILDKITE_JOB_ID"]
  897. - id: checks-upgrade-entire-mz-two-versions
  898. label: "Checks upgrade across two versions"
  899. depends_on: build-aarch64
  900. timeout_in_minutes: 180
  901. parallelism: 3
  902. agents:
  903. queue: hetzner-aarch64-8cpu-16gb
  904. plugins:
  905. - ./ci/plugins/mzcompose:
  906. composition: platform-checks
  907. args: [--scenario=UpgradeEntireMzTwoVersions, "--seed=$BUILDKITE_JOB_ID"]
  908. - id: checks-upgrade-entire-mz-four-versions
  909. label: "Checks upgrade across four versions"
  910. depends_on: build-aarch64
  911. timeout_in_minutes: 180
  912. parallelism: 3
  913. agents:
  914. queue: hetzner-aarch64-8cpu-16gb
  915. plugins:
  916. - ./ci/plugins/mzcompose:
  917. composition: platform-checks
  918. args: [--scenario=UpgradeEntireMzFourVersions, "--seed=$BUILDKITE_JOB_ID"]
  919. - id: checks-0dt-restart-entire-mz-forced-migrations
  920. label: "Checks 0dt restart of the entire Mz with forced migrations"
  921. depends_on: build-aarch64
  922. timeout_in_minutes: 180
  923. parallelism: 3
  924. agents:
  925. queue: hetzner-aarch64-16cpu-32gb
  926. plugins:
  927. - ./ci/plugins/mzcompose:
  928. composition: platform-checks
  929. args: [--scenario=ZeroDowntimeRestartEntireMzForcedMigrations, "--seed=$BUILDKITE_JOB_ID"]
  930. - id: checks-0dt-upgrade-entire-mz
  931. label: "Checks 0dt upgrade, whole-Mz restart"
  932. depends_on: build-aarch64
  933. timeout_in_minutes: 120
  934. parallelism: 3
  935. agents:
  936. queue: hetzner-aarch64-16cpu-32gb
  937. plugins:
  938. - ./ci/plugins/mzcompose:
  939. composition: platform-checks
  940. args: [--scenario=ZeroDowntimeUpgradeEntireMz, "--seed=$BUILDKITE_JOB_ID"]
  941. - id: checks-0dt-upgrade-entire-mz-two-versions
  942. label: "Checks 0dt upgrade across two versions"
  943. depends_on: build-aarch64
  944. timeout_in_minutes: 120
  945. parallelism: 3
  946. agents:
  947. queue: hetzner-aarch64-16cpu-32gb
  948. plugins:
  949. - ./ci/plugins/mzcompose:
  950. composition: platform-checks
  951. args: [--scenario=ZeroDowntimeUpgradeEntireMzTwoVersions, "--seed=$BUILDKITE_JOB_ID"]
  952. - id: checks-0dt-upgrade-entire-mz-four-versions
  953. label: "Checks 0dt upgrade across four versions"
  954. depends_on: build-aarch64
  955. timeout_in_minutes: 120
  956. parallelism: 3
  957. agents:
  958. queue: hetzner-aarch64-16cpu-32gb
  959. plugins:
  960. - ./ci/plugins/mzcompose:
  961. composition: platform-checks
  962. args: [--scenario=ZeroDowntimeUpgradeEntireMzFourVersions, "--seed=$BUILDKITE_JOB_ID"]
  963. - id: checks-0dt-bump-version
  964. label: "Checks 0dt upgrade to a bumped version"
  965. depends_on: build-x86_64
  966. timeout_in_minutes: 240
  967. agents:
  968. queue: hetzner-x86-64-dedi-16cpu-64gb
  969. plugins:
  970. - ./ci/plugins/mzcompose:
  971. composition: platform-checks
  972. args: [--scenario=ZeroDowntimeBumpedVersion, "--seed=$BUILDKITE_JOB_ID"]
  973. ci-builder: stable
  974. - id: cloudtest-upgrade
  975. label: "Platform checks upgrade in Cloudtest/K8s"
  976. depends_on: build-aarch64
  977. timeout_in_minutes: 240
  978. parallelism: 3
  979. env:
  980. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster.yaml"
  981. agents:
  982. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  983. # queue: hetzner-aarch64-4cpu-8gb
  984. queue: linux-aarch64-large
  985. plugins:
  986. - ./ci/plugins/cloudtest:
  987. # Uses .td-file based parallelism instead
  988. args: [-m=long, test/cloudtest/test_upgrade.py, --no-test-parallelism]
  989. sanitizer: skip
  990. - group: "K8s node recovery cloudtest"
  991. key: k8s-node-recovery
  992. steps:
  993. - id: k8s-node-recovery-storage-on-failing
  994. label: "K8s recovery: storage on failing node"
  995. depends_on: build-aarch64
  996. timeout_in_minutes: 60
  997. # TODO: database-issues#7499 (k8s node recovery tests flaky)
  998. retry:
  999. automatic:
  1000. - exit_status: 1
  1001. limit: 2
  1002. - exit_status: 143 # SIGTERM
  1003. limit: 2
  1004. - exit_status: 255
  1005. limit: 2
  1006. agents:
  1007. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  1008. # queue: hetzner-aarch64-4cpu-8gb
  1009. queue: linux-aarch64-medium
  1010. inputs:
  1011. - test/cloudtest
  1012. - misc/python/materialize/cloudtest
  1013. - misc/kind
  1014. env:
  1015. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster-node-recovery-test.yaml"
  1016. plugins:
  1017. - ./ci/plugins/cloudtest:
  1018. args: [--exitfirst, -k=test_unreplicated_storage_cluster_on_failing_node, --apply-node-selectors, test/cloudtest]
  1019. sanitizer: skip
  1020. - id: k8s-node-recovery-compute-on-failing
  1021. label: "K8s recovery: compute on failing node"
  1022. depends_on: build-aarch64
  1023. timeout_in_minutes: 60
  1024. # TODO: database-issues#7499 (k8s node recovery tests flaky)
  1025. retry:
  1026. automatic:
  1027. - exit_status: 1
  1028. limit: 2
  1029. - exit_status: 143 # SIGTERM
  1030. limit: 2
  1031. - exit_status: 255
  1032. limit: 2
  1033. agents:
  1034. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  1035. # queue: hetzner-aarch64-4cpu-8gb
  1036. queue: linux-aarch64
  1037. inputs:
  1038. - test/cloudtest
  1039. - misc/python/materialize/cloudtest
  1040. - misc/kind
  1041. env:
  1042. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster-node-recovery-test.yaml"
  1043. plugins:
  1044. - ./ci/plugins/cloudtest:
  1045. args: [--exitfirst, -k=test_unreplicated_compute_cluster_on_failing_node, --apply-node-selectors, test/cloudtest]
  1046. sanitizer: skip
  1047. - id: k8s-node-recovery-replicated-compute-on-failing
  1048. label: "K8s recovery: replicated compute on failing node"
  1049. depends_on: build-aarch64
  1050. timeout_in_minutes: 60
  1051. # TODO: database-issues#7499 (k8s node recovery tests flaky)
  1052. retry:
  1053. automatic:
  1054. - exit_status: 1
  1055. limit: 2
  1056. - exit_status: 143 # SIGTERM
  1057. limit: 2
  1058. - exit_status: 255
  1059. limit: 2
  1060. agents:
  1061. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  1062. # queue: hetzner-aarch64-4cpu-8gb
  1063. queue: linux-aarch64
  1064. inputs:
  1065. - test/cloudtest
  1066. - misc/python/materialize/cloudtest
  1067. - misc/kind
  1068. env:
  1069. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster-node-recovery-test.yaml"
  1070. plugins:
  1071. - ./ci/plugins/cloudtest:
  1072. args: [--exitfirst, -k=test_replicated_compute_cluster_on_failing_node, --apply-node-selectors, test/cloudtest]
  1073. sanitizer: skip
  1074. - id: k8s-node-recovery-envd-on-failing
  1075. label: "K8s recovery: envd on failing node"
  1076. depends_on: build-aarch64
  1077. timeout_in_minutes: 60
  1078. # TODO: database-issues#7499 (k8s node recovery tests flaky)
  1079. retry:
  1080. automatic:
  1081. - exit_status: 1
  1082. limit: 2
  1083. - exit_status: 143 # SIGTERM
  1084. limit: 2
  1085. - exit_status: 255
  1086. limit: 2
  1087. agents:
  1088. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  1089. # queue: hetzner-aarch64-4cpu-8gb
  1090. queue: linux-aarch64
  1091. inputs:
  1092. - test/cloudtest
  1093. - misc/python/materialize/cloudtest
  1094. - misc/kind
  1095. env:
  1096. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster-node-recovery-test.yaml"
  1097. plugins:
  1098. - ./ci/plugins/cloudtest:
  1099. args: [--exitfirst, -k=test_envd_on_failing_node, --apply-node-selectors, test/cloudtest]
  1100. sanitizer: skip
  1101. - group: Persist
  1102. key: persist
  1103. steps:
  1104. - id: persist-maelstrom
  1105. label: Maelstrom coverage of persist
  1106. depends_on: build-aarch64
  1107. timeout_in_minutes: 40
  1108. artifact_paths: [test/persist/maelstrom/**/*.log]
  1109. plugins:
  1110. - ./ci/plugins/mzcompose:
  1111. composition: persist
  1112. args: [--consensus=mem, --blob=mem]
  1113. agents:
  1114. queue: hetzner-aarch64-4cpu-8gb
  1115. - id: persist-maelstrom-single-node
  1116. label: Long single-node Maelstrom coverage of persist
  1117. depends_on: build-aarch64
  1118. timeout_in_minutes: 40
  1119. agents:
  1120. queue: hetzner-aarch64-4cpu-8gb
  1121. artifact_paths: [test/persist/maelstrom/**/*.log]
  1122. plugins:
  1123. - ./ci/plugins/mzcompose:
  1124. composition: persist
  1125. args: [--node-count=1, --consensus=mem, --blob=mem, --time-limit=600, --concurrency=4, --rate=500, --max-txn-length=16, --unreliability=0.1]
  1126. - id: persist-maelstrom-multi-node
  1127. label: Long multi-node Maelstrom coverage of persist with CockroachDB consensus
  1128. depends_on: build-aarch64
  1129. timeout_in_minutes: 40
  1130. agents:
  1131. queue: hetzner-aarch64-8cpu-16gb
  1132. artifact_paths: [test/persist/maelstrom/**/*.log]
  1133. plugins:
  1134. - ./ci/plugins/mzcompose:
  1135. composition: persist
  1136. args: [--node-count=4, --consensus=cockroach, --blob=maelstrom, --time-limit=300, --concurrency=4, --rate=500, --max-txn-length=16, --unreliability=0.1]
  1137. - id: persist-maelstrom-multi-node-postgres
  1138. label: "Long multi-node Maelstrom coverage of persist with :postgres: Consensus"
  1139. depends_on: build-aarch64
  1140. timeout_in_minutes: 40
  1141. agents:
  1142. queue: hetzner-aarch64-8cpu-16gb
  1143. artifact_paths: [test/persist/maelstrom/**/*.log]
  1144. plugins:
  1145. - ./ci/plugins/mzcompose:
  1146. composition: persist
  1147. args: [--node-count=4, --consensus=postgres, --blob=maelstrom, --time-limit=300, --concurrency=4, --rate=500, --max-txn-length=16, --unreliability=0.1]
  1148. - id: txn-wal-maelstrom
  1149. label: Maelstrom coverage of txn-wal with CockroachDB Consensus
  1150. depends_on: build-aarch64
  1151. timeout_in_minutes: 40
  1152. agents:
  1153. queue: hetzner-aarch64-8cpu-16gb
  1154. artifact_paths: [test/persist/maelstrom/**/*.log]
  1155. plugins:
  1156. - ./ci/plugins/mzcompose:
  1157. composition: persist
  1158. args: [--node-count=4, --consensus=cockroach, --blob=maelstrom, --time-limit=300, --rate=500, --txn-wal]
  1159. - id: txn-wal-maelstrom-postgres
  1160. label: "Maelstrom coverage of txn-wal with :postgres: Consensus"
  1161. depends_on: build-aarch64
  1162. timeout_in_minutes: 40
  1163. agents:
  1164. queue: hetzner-aarch64-8cpu-16gb
  1165. artifact_paths: [test/persist/maelstrom/**/*.log]
  1166. plugins:
  1167. - ./ci/plugins/mzcompose:
  1168. composition: persist
  1169. args: [--node-count=4, --consensus=postgres, --blob=maelstrom, --time-limit=300, --rate=500, --txn-wal]
  1170. - id: persistence-failpoints
  1171. label: Persistence failpoints
  1172. depends_on: build-aarch64
  1173. timeout_in_minutes: 30
  1174. agents:
  1175. queue: hetzner-aarch64-4cpu-8gb
  1176. plugins:
  1177. - ./ci/plugins/mzcompose:
  1178. composition: persistence
  1179. run: failpoints
  1180. skip: Persistence tests disabled
  1181. - group: LD
  1182. key: ld
  1183. steps:
  1184. - id: sql-feature-flags
  1185. label: "SQL-level feature flags"
  1186. depends_on: build-aarch64
  1187. timeout_in_minutes: 30
  1188. agents:
  1189. queue: hetzner-aarch64-4cpu-8gb
  1190. plugins:
  1191. - ./ci/plugins/mzcompose:
  1192. composition: sql-feature-flags
  1193. - id: launchdarkly
  1194. label: "LaunchDarkly"
  1195. depends_on: build-aarch64
  1196. timeout_in_minutes: 30
  1197. agents:
  1198. # Requires LAUNCHDARKLY_API_TOKEN
  1199. queue: linux-aarch64-small
  1200. plugins:
  1201. - ./ci/plugins/mzcompose:
  1202. composition: launchdarkly
  1203. - group: E2E
  1204. key: e2e
  1205. steps:
  1206. - id: cloud-canary
  1207. label: "Canary Deploy in Staging Cloud"
  1208. depends_on: build-aarch64
  1209. timeout_in_minutes: 1200
  1210. concurrency: 1
  1211. concurrency_group: 'cloud-canary'
  1212. agents:
  1213. queue: linux-aarch64-small
  1214. plugins:
  1215. - ./ci/plugins/mzcompose:
  1216. composition: cloud-canary
  1217. branches: "main v*.* *cloud*"
  1218. - id: mz-e2e
  1219. label: "Mz E2E Test"
  1220. depends_on: build-aarch64
  1221. timeout_in_minutes: 1200
  1222. concurrency: 1
  1223. concurrency_group: 'mz-e2e'
  1224. agents:
  1225. # Requires real Mz access, CONFLUENT_CLOUD_DEVEX_KAFKA_USERNAME, etc.
  1226. queue: linux-aarch64-small
  1227. plugins:
  1228. - ./ci/plugins/mzcompose:
  1229. composition: mz-e2e
  1230. - id: terraform-aws
  1231. label: "Terraform + Helm Chart E2E on AWS"
  1232. artifact_paths: [test/terraform/aws-temporary/terraform.tfstate, "mz_debug_*.zip"]
  1233. depends_on: build-aarch64
  1234. timeout_in_minutes: 120
  1235. concurrency: 1
  1236. concurrency_group: 'terraform-aws'
  1237. agents:
  1238. queue: linux-aarch64-small
  1239. plugins:
  1240. - ./ci/plugins/scratch-aws-access: ~
  1241. - ./ci/plugins/mzcompose:
  1242. composition: terraform
  1243. run: aws-temporary
  1244. # Cleanup runs in pre-exit hook
  1245. args: [--no-cleanup]
  1246. ci-builder: stable
  1247. branches: "main v*.* *aws* *tf* *terraform* *helm* *self-managed* *orchestratord*"
  1248. - id: terraform-aws-upgrade
  1249. label: "Terraform + Helm Chart Upgrade on AWS"
  1250. artifact_paths: [test/terraform/aws-upgrade/terraform.tfstate, "mz_debug_*.zip"]
  1251. depends_on: build-aarch64
  1252. timeout_in_minutes: 120
  1253. concurrency: 1
  1254. concurrency_group: 'terraform-upgrade-aws'
  1255. agents:
  1256. queue: linux-aarch64-small
  1257. plugins:
  1258. - ./ci/plugins/scratch-aws-access: ~
  1259. - ./ci/plugins/mzcompose:
  1260. composition: terraform
  1261. run: aws-upgrade
  1262. # Cleanup runs in pre-exit hook
  1263. args: [--no-cleanup]
  1264. ci-builder: stable
  1265. branches: "main v*.* *aws* *tf* *terraform* *helm* *self-managed* *orchestratord*"
  1266. - id: terraform-gcp
  1267. label: "Terraform + Helm Chart E2E on GCP"
  1268. artifact_paths: [test/terraform/gcp-temporary/terraform.tfstate, "mz_debug_*.zip"]
  1269. depends_on: build-aarch64
  1270. timeout_in_minutes: 120
  1271. concurrency: 1
  1272. concurrency_group: 'terraform-gcp'
  1273. agents:
  1274. queue: linux-aarch64-small
  1275. plugins:
  1276. - ./ci/plugins/mzcompose:
  1277. composition: terraform
  1278. run: gcp-temporary
  1279. # Cleanup runs in pre-exit hook
  1280. args: [--no-cleanup]
  1281. ci-builder: stable
  1282. branches: "main v*.* *gcp* *tf* *terraform* *helm* *self-managed* *orchestratord*"
  1283. - id: terraform-azure
  1284. label: "Terraform + Helm Chart E2E on Azure"
  1285. artifact_paths: [test/terraform/azure-temporary/terraform.tfstate, "mz_debug_*.zip"]
  1286. depends_on: build-aarch64
  1287. timeout_in_minutes: 120
  1288. concurrency: 1
  1289. concurrency_group: 'terraform-azure'
  1290. agents:
  1291. queue: linux-aarch64-small
  1292. plugins:
  1293. - ./ci/plugins/mzcompose:
  1294. composition: terraform
  1295. run: azure-temporary
  1296. # Cleanup runs in pre-exit hook
  1297. args: [--no-cleanup]
  1298. ci-builder: stable
  1299. branches: "main v*.* *azure* *tf* *terraform* *helm* *self-managed* *orchestratord*"
  1300. - group: "Output consistency"
  1301. key: output-consistency
  1302. steps:
  1303. - id: output-consistency-internal
  1304. label: "Output consistency (internal)"
  1305. depends_on: build-aarch64
  1306. timeout_in_minutes: 30
  1307. agents:
  1308. queue: hetzner-aarch64-4cpu-8gb
  1309. plugins:
  1310. - ./ci/plugins/mzcompose:
  1311. composition: output-consistency
  1312. args: ["--seed=$BUILDKITE_JOB_ID", "--max-runtime-in-sec=1200"]
  1313. skip: "too flaky currently, find better way to ignore known issues"
  1314. - id: output-consistency-postgres
  1315. label: "Output consistency (Postgres)"
  1316. depends_on: build-aarch64
  1317. timeout_in_minutes: 58
  1318. agents:
  1319. queue: hetzner-aarch64-4cpu-8gb
  1320. plugins:
  1321. - ./ci/plugins/mzcompose:
  1322. composition: postgres-consistency
  1323. args: ["--seed=$BUILDKITE_JOB_ID", "--max-runtime-in-sec=1200"]
  1324. skip: "too flaky currently, find better way to ignore known issues"
  1325. - id: output-consistency-version-dfr
  1326. label: "Output consistency (version for DFR)"
  1327. depends_on: build-aarch64
  1328. timeout_in_minutes: 58
  1329. agents:
  1330. queue: hetzner-aarch64-4cpu-8gb
  1331. plugins:
  1332. - ./ci/plugins/mzcompose:
  1333. composition: version-consistency
  1334. args: ["--seed=$BUILDKITE_JOB_ID", "--max-runtime-in-sec=1200", "--evaluation-strategy=dataflow_rendering", "--other-tag=common-ancestor"]
  1335. skip: "too flaky currently, find better way to ignore known issues"
  1336. - id: output-consistency-version-ctf
  1337. label: "Output consistency (version for CTF)"
  1338. depends_on: build-aarch64
  1339. timeout_in_minutes: 58
  1340. agents:
  1341. queue: hetzner-aarch64-4cpu-8gb
  1342. plugins:
  1343. - ./ci/plugins/mzcompose:
  1344. composition: version-consistency
  1345. args: ["--seed=$BUILDKITE_JOB_ID", "--max-runtime-in-sec=1200", "--evaluation-strategy=constant_folding", "--other-tag=common-ancestor"]
  1346. skip: "too flaky currently, find better way to ignore known issues"
  1347. - id: output-consistency-feature-flags-dfr
  1348. label: "Output consistency (feature-flags for DFR)"
  1349. depends_on: build-aarch64
  1350. timeout_in_minutes: 58
  1351. agents:
  1352. queue: hetzner-aarch64-4cpu-8gb
  1353. plugins:
  1354. - ./ci/plugins/mzcompose:
  1355. composition: feature-flag-consistency
  1356. args: ["--seed=$BUILDKITE_JOB_ID", "--max-runtime-in-sec=1200", "--evaluation-strategy=dataflow_rendering"]
  1357. skip: "too flaky currently, find better way to ignore known issues"
  1358. - group: SQLsmith
  1359. key: sqlsmith-group
  1360. steps:
  1361. - id: sqlsmith
  1362. label: "SQLsmith"
  1363. depends_on: build-aarch64
  1364. timeout_in_minutes: 60
  1365. agents:
  1366. queue: hetzner-aarch64-4cpu-8gb
  1367. plugins:
  1368. - ./ci/plugins/mzcompose:
  1369. composition: sqlsmith
  1370. args: [--max-joins=5, --runtime=1500]
  1371. - id: sqlsmith-explain
  1372. label: "SQLsmith explain"
  1373. depends_on: build-aarch64
  1374. timeout_in_minutes: 60
  1375. agents:
  1376. queue: hetzner-aarch64-4cpu-8gb
  1377. plugins:
  1378. - ./ci/plugins/mzcompose:
  1379. composition: sqlsmith
  1380. args: [--max-joins=12, --explain-only, --runtime=1500]
  1381. - group: SQLancer
  1382. key: sqlancer
  1383. steps:
  1384. - id: sqlancer-pqs
  1385. label: "SQLancer PQS"
  1386. depends_on: build-aarch64
  1387. timeout_in_minutes: 40
  1388. agents:
  1389. queue: hetzner-aarch64-4cpu-8gb
  1390. plugins:
  1391. - ./ci/plugins/mzcompose:
  1392. composition: sqlancer
  1393. args: [--runtime=1500, --oracle=PQS, --no-qpg]
  1394. - id: sqlancer-norec
  1395. label: "SQLancer NoREC"
  1396. depends_on: build-aarch64
  1397. timeout_in_minutes: 40
  1398. agents:
  1399. queue: hetzner-aarch64-4cpu-8gb
  1400. plugins:
  1401. - ./ci/plugins/mzcompose:
  1402. composition: sqlancer
  1403. args: [--runtime=1500, --oracle=NOREC]
  1404. - id: sqlancer-query-partitioning
  1405. label: "SQLancer QueryPartitioning"
  1406. depends_on: build-aarch64
  1407. timeout_in_minutes: 40
  1408. agents:
  1409. # Ran out of memory retrieving query results.
  1410. queue: hetzner-aarch64-4cpu-8gb
  1411. plugins:
  1412. - ./ci/plugins/mzcompose:
  1413. composition: sqlancer
  1414. args: [--runtime=1500, --oracle=QUERY_PARTITIONING]
  1415. - id: sqlancer-having
  1416. label: "SQLancer Having"
  1417. depends_on: build-aarch64
  1418. timeout_in_minutes: 40
  1419. agents:
  1420. queue: hetzner-aarch64-4cpu-8gb
  1421. plugins:
  1422. - ./ci/plugins/mzcompose:
  1423. composition: sqlancer
  1424. args: [--runtime=1500, --oracle=HAVING]
  1425. - group: RQG
  1426. key: rqg
  1427. steps:
  1428. - id: rqg-simple-aggregates
  1429. label: "RQG simple-aggregates workload"
  1430. depends_on: build-aarch64
  1431. timeout_in_minutes: 45
  1432. agents:
  1433. queue: hetzner-aarch64-4cpu-8gb
  1434. env:
  1435. CI_ALLOW_LOCAL_BUILD: true
  1436. plugins:
  1437. - ./ci/plugins/mzcompose:
  1438. composition: rqg
  1439. args: ["simple-aggregates", "--seed=$BUILDKITE_JOB_ID"]
  1440. ci-builder: stable
  1441. - id: rqg-db3-joins
  1442. label: "RQG dbt3-joins workload"
  1443. depends_on: build-aarch64
  1444. # Some queries run very slow on Postgres, set a higher timeout to give them a chance to finish
  1445. timeout_in_minutes: 120
  1446. agents:
  1447. # Runs into timeout/OoM on small agents
  1448. queue: hetzner-aarch64-8cpu-16gb
  1449. env:
  1450. CI_ALLOW_LOCAL_BUILD: true
  1451. plugins:
  1452. - ./ci/plugins/mzcompose:
  1453. composition: rqg
  1454. args: ["dbt3-joins", "--seed=$BUILDKITE_JOB_ID"]
  1455. ci-builder: stable
  1456. - id: rqg-lateral-joins
  1457. label: "RQG lateral-joins workload"
  1458. depends_on: build-aarch64
  1459. skip: "flaky until database-issues#7713 is fixed"
  1460. timeout_in_minutes: 45
  1461. agents:
  1462. queue: hetzner-aarch64-4cpu-8gb
  1463. env:
  1464. CI_ALLOW_LOCAL_BUILD: true
  1465. plugins:
  1466. - ./ci/plugins/mzcompose:
  1467. composition: rqg
  1468. args: ["lateral-joins", "--seed=$BUILDKITE_JOB_ID"]
  1469. ci-builder: stable
  1470. - id: rqg-subqueries
  1471. label: "RQG subqueries workload"
  1472. depends_on: build-aarch64
  1473. timeout_in_minutes: 45
  1474. agents:
  1475. queue: hetzner-aarch64-4cpu-8gb
  1476. env:
  1477. CI_ALLOW_LOCAL_BUILD: true
  1478. plugins:
  1479. - ./ci/plugins/mzcompose:
  1480. composition: rqg
  1481. args: ["subqueries", "--seed=$BUILDKITE_JOB_ID"]
  1482. ci-builder: stable
  1483. - id: rqg-window-functions
  1484. label: "RQG window functions workload"
  1485. depends_on: build-aarch64
  1486. skip: "flaky until database-issues#8366 is fixed"
  1487. timeout_in_minutes: 45
  1488. agents:
  1489. queue: hetzner-aarch64-4cpu-8gb
  1490. env:
  1491. CI_ALLOW_LOCAL_BUILD: true
  1492. plugins:
  1493. - ./ci/plugins/mzcompose:
  1494. composition: rqg
  1495. args: ["window-functions", "--seed=$BUILDKITE_JOB_ID"]
  1496. ci-builder: stable
  1497. - id: rqg-wmr
  1498. label: "RQG WMR workload"
  1499. depends_on: build-aarch64
  1500. timeout_in_minutes: 45
  1501. agents:
  1502. queue: hetzner-aarch64-4cpu-8gb
  1503. env:
  1504. CI_ALLOW_LOCAL_BUILD: true
  1505. plugins:
  1506. - ./ci/plugins/mzcompose:
  1507. composition: rqg
  1508. # Postgres does not support WMR, so our only hope for a comparison
  1509. # test is to use a previous Mz version via --other-tag=...
  1510. args: ["wmr", "--seed=$BUILDKITE_JOB_ID", "--other-tag=common-ancestor"]
  1511. ci-builder: stable
  1512. - id: rqg-banking
  1513. label: "RQG banking workload"
  1514. depends_on: build-aarch64
  1515. timeout_in_minutes: 60
  1516. agents:
  1517. queue: hetzner-aarch64-4cpu-8gb
  1518. env:
  1519. CI_ALLOW_LOCAL_BUILD: true
  1520. plugins:
  1521. - ./ci/plugins/mzcompose:
  1522. composition: rqg
  1523. args: ["banking", "--seed=$BUILDKITE_JOB_ID"]
  1524. ci-builder: stable
  1525. - id: rqg-left-join-stacks
  1526. label: "RQG left join stacks workload"
  1527. depends_on: build-aarch64
  1528. timeout_in_minutes: 45
  1529. agents:
  1530. queue: hetzner-aarch64-4cpu-8gb
  1531. env:
  1532. CI_ALLOW_LOCAL_BUILD: true
  1533. plugins:
  1534. - ./ci/plugins/mzcompose:
  1535. composition: rqg
  1536. args: ["left-join-stacks", "--seed=$BUILDKITE_JOB_ID"]
  1537. ci-builder: stable
  1538. - id: crdb-restarts
  1539. label: "CRDB rolling restarts"
  1540. depends_on: build-aarch64
  1541. timeout_in_minutes: 30
  1542. agents:
  1543. queue: hetzner-aarch64-4cpu-8gb
  1544. plugins:
  1545. - ./ci/plugins/mzcompose:
  1546. composition: crdb-restarts
  1547. - id: pubsub-disruption
  1548. label: "PubSub disruption"
  1549. depends_on: build-aarch64
  1550. timeout_in_minutes: 60
  1551. agents:
  1552. queue: hetzner-aarch64-4cpu-8gb
  1553. plugins:
  1554. - ./ci/plugins/mzcompose:
  1555. composition: pubsub-disruption
  1556. - id: retain-history
  1557. label: "Check retain history"
  1558. depends_on: build-aarch64
  1559. skip: "database-issues#7310"
  1560. timeout_in_minutes: 30
  1561. agents:
  1562. queue: hetzner-aarch64-4cpu-8gb
  1563. plugins:
  1564. - ./ci/plugins/mzcompose:
  1565. composition: retain-history
  1566. - group: "Data Ingest"
  1567. key: data-ingest
  1568. steps:
  1569. - id: data-ingest-1-replica
  1570. label: "Data Ingest (1 replica)"
  1571. depends_on: build-aarch64
  1572. timeout_in_minutes: 90
  1573. parallelism: 2
  1574. agents:
  1575. queue: hetzner-aarch64-4cpu-8gb
  1576. plugins:
  1577. - ./ci/plugins/mzcompose:
  1578. composition: data-ingest
  1579. # Don't run with Azurite since it's pretty slow, see https://github.com/MaterializeInc/database-issues/issues/8892 for details
  1580. args: [--replicas=1]
  1581. - id: data-ingest-2-replicas
  1582. label: "Data Ingest (2 replicas)"
  1583. depends_on: build-aarch64
  1584. timeout_in_minutes: 90
  1585. parallelism: 2
  1586. agents:
  1587. queue: hetzner-aarch64-4cpu-8gb
  1588. plugins:
  1589. - ./ci/plugins/mzcompose:
  1590. composition: data-ingest
  1591. # Don't run with Azurite since it's pretty slow, see https://github.com/MaterializeInc/database-issues/issues/8892 for details
  1592. args: [--replicas=2]
  1593. - id: data-ingest-8-replicas
  1594. label: "Data Ingest (8 replicas)"
  1595. depends_on: build-aarch64
  1596. timeout_in_minutes: 90
  1597. parallelism: 2
  1598. agents:
  1599. queue: hetzner-aarch64-8cpu-16gb
  1600. plugins:
  1601. - ./ci/plugins/mzcompose:
  1602. composition: data-ingest
  1603. # Don't run with Azurite since it's pretty slow, see https://github.com/MaterializeInc/database-issues/issues/8892 for details
  1604. args: [--replicas=8]
  1605. - group: "Parallel Workload"
  1606. key: parallel-workload
  1607. steps:
  1608. - id: parallel-workload-dml
  1609. label: "Parallel Workload (DML)"
  1610. depends_on: build-aarch64
  1611. artifact_paths: [parallel-workload-queries.log.zst]
  1612. timeout_in_minutes: 90
  1613. agents:
  1614. queue: hetzner-aarch64-8cpu-16gb
  1615. plugins:
  1616. - ./ci/plugins/mzcompose:
  1617. composition: parallel-workload
  1618. args: [--runtime=1500, --complexity=dml, --threads=16]
  1619. - id: parallel-workload-ddl
  1620. label: "Parallel Workload (DDL) with :azure: blob store"
  1621. depends_on: build-aarch64
  1622. artifact_paths: [parallel-workload-queries.log.zst]
  1623. timeout_in_minutes: 90
  1624. agents:
  1625. queue: hetzner-aarch64-8cpu-16gb
  1626. plugins:
  1627. - ./ci/plugins/mzcompose:
  1628. composition: parallel-workload
  1629. args: [--runtime=1500, --threads=8, --azurite]
  1630. - id: parallel-workload-ddl-only
  1631. label: "Parallel Workload (DDL Only)"
  1632. depends_on: build-aarch64
  1633. artifact_paths: [parallel-workload-queries.log.zst]
  1634. timeout_in_minutes: 90
  1635. agents:
  1636. queue: hetzner-aarch64-8cpu-16gb
  1637. plugins:
  1638. - ./ci/plugins/mzcompose:
  1639. composition: parallel-workload
  1640. args: [--runtime=1500, --complexity=ddl-only, --threads=2]
  1641. - id: parallel-workload-many-threads
  1642. label: "Parallel Workload (many threads)"
  1643. depends_on: build-aarch64
  1644. artifact_paths: [parallel-workload-queries.log.zst]
  1645. timeout_in_minutes: 90
  1646. agents:
  1647. # Sporadic OoM otherwise
  1648. queue: hetzner-aarch64-8cpu-16gb
  1649. plugins:
  1650. - ./ci/plugins/mzcompose:
  1651. composition: parallel-workload
  1652. args: [--runtime=1500, --threads=100]
  1653. skip: "Too unstable at the moment"
  1654. - id: parallel-workload-rename-naughty
  1655. label: "Parallel Workload (rename + naughty identifiers)"
  1656. depends_on: build-aarch64
  1657. artifact_paths: [parallel-workload-queries.log.zst]
  1658. timeout_in_minutes: 90
  1659. agents:
  1660. queue: hetzner-aarch64-16cpu-32gb
  1661. plugins:
  1662. - ./ci/plugins/mzcompose:
  1663. composition: parallel-workload
  1664. args: [--runtime=1500, --scenario=rename, --naughty-identifiers, --threads=16]
  1665. - id: parallel-workload-rename
  1666. label: "Parallel Workload (rename) with :azure: blob store"
  1667. depends_on: build-aarch64
  1668. artifact_paths: [parallel-workload-queries.log.zst]
  1669. timeout_in_minutes: 90
  1670. agents:
  1671. queue: hetzner-aarch64-16cpu-32gb
  1672. plugins:
  1673. - ./ci/plugins/mzcompose:
  1674. composition: parallel-workload
  1675. args: [--runtime=1500, --scenario=rename, --threads=16, --azurite]
  1676. - id: parallel-workload-cancel
  1677. label: "Parallel Workload (cancel)"
  1678. depends_on: build-aarch64
  1679. artifact_paths: [parallel-workload-queries.log.zst]
  1680. timeout_in_minutes: 90
  1681. agents:
  1682. queue: hetzner-aarch64-8cpu-16gb
  1683. plugins:
  1684. - ./ci/plugins/mzcompose:
  1685. composition: parallel-workload
  1686. args: [--runtime=1500, --scenario=cancel, --threads=16]
  1687. - id: parallel-workload-kill
  1688. label: "Parallel Workload (kill)"
  1689. depends_on: build-aarch64
  1690. artifact_paths: [parallel-workload-queries.log.zst]
  1691. timeout_in_minutes: 90
  1692. agents:
  1693. queue: hetzner-aarch64-8cpu-16gb
  1694. plugins:
  1695. - ./ci/plugins/mzcompose:
  1696. composition: parallel-workload
  1697. args: [--runtime=1500, --scenario=kill, --threads=8]
  1698. - id: parallel-workload-backup-restore
  1699. label: "Parallel Workload (backup & restore)"
  1700. depends_on: build-aarch64
  1701. artifact_paths: [parallel-workload-queries.log.zst]
  1702. timeout_in_minutes: 90
  1703. skip: "TODO(def-): Properly stop all db actions during backup & restore"
  1704. agents:
  1705. queue: hetzner-aarch64-8cpu-16gb
  1706. plugins:
  1707. - ./ci/plugins/mzcompose:
  1708. composition: parallel-workload
  1709. args: [--runtime=1500, --scenario=backup-restore, --naughty-identifiers, --threads=16]
  1710. - id: parallel-workload-0dt
  1711. label: "Parallel Workload (0dt deploy)"
  1712. depends_on: build-x86_64
  1713. artifact_paths: [parallel-workload-queries.log.zst]
  1714. timeout_in_minutes: 90
  1715. agents:
  1716. queue: hetzner-x86-64-dedi-16cpu-64gb
  1717. plugins:
  1718. - ./ci/plugins/mzcompose:
  1719. composition: parallel-workload
  1720. args: [--runtime=1500, --scenario=0dt-deploy, --threads=16]
  1721. - group: Slow cluster tests
  1722. key: slow-cluster
  1723. steps:
  1724. - id: incident-70
  1725. label: "Test for incident 70"
  1726. depends_on: build-aarch64
  1727. timeout_in_minutes: 60
  1728. agents:
  1729. queue: hetzner-aarch64-4cpu-8gb
  1730. plugins:
  1731. - ./ci/plugins/mzcompose:
  1732. composition: cluster
  1733. run: test-incident-70
  1734. - id: refresh-mv-restart
  1735. label: "Refresh MV restart"
  1736. depends_on: build-aarch64
  1737. timeout_in_minutes: 60
  1738. agents:
  1739. queue: hetzner-aarch64-4cpu-8gb
  1740. plugins:
  1741. - ./ci/plugins/mzcompose:
  1742. composition: cluster
  1743. run: test-refresh-mv-restart
  1744. - id: balancerd
  1745. label: "Tests for balancerd"
  1746. depends_on: build-aarch64
  1747. timeout_in_minutes: 30
  1748. agents:
  1749. queue: hetzner-aarch64-4cpu-8gb
  1750. plugins:
  1751. - ./ci/plugins/mzcompose:
  1752. composition: balancerd
  1753. - group: Legacy upgrade tests
  1754. key: legacy-upgrade
  1755. steps:
  1756. - id: legacy-upgrade-git
  1757. label: Legacy upgrade tests (last version from git)
  1758. depends_on: build-aarch64
  1759. timeout_in_minutes: 60
  1760. plugins:
  1761. - ./ci/plugins/mzcompose:
  1762. composition: legacy-upgrade
  1763. args: ["--versions-source=git"]
  1764. agents:
  1765. queue: hetzner-aarch64-4cpu-8gb
  1766. - id: legacy-upgrade-docs
  1767. label: "Legacy upgrade tests (last version from docs)"
  1768. parallelism: 2
  1769. depends_on: build-aarch64
  1770. timeout_in_minutes: 60
  1771. plugins:
  1772. - ./ci/plugins/mzcompose:
  1773. composition: legacy-upgrade
  1774. args: ["--versions-source=docs", "--self-managed-upgrade"]
  1775. agents:
  1776. queue: hetzner-aarch64-4cpu-8gb
  1777. - group: Cloud tests
  1778. key: cloudtests
  1779. steps:
  1780. - id: cloudtest
  1781. label: Cloudtest
  1782. depends_on: build-aarch64
  1783. timeout_in_minutes: 60
  1784. inputs:
  1785. - test/cloudtest
  1786. - misc/python/materialize/cloudtest
  1787. - misc/kind
  1788. env:
  1789. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster.yaml"
  1790. plugins:
  1791. - ./ci/plugins/scratch-aws-access: ~
  1792. - ./ci/plugins/cloudtest:
  1793. args:
  1794. [
  1795. --exitfirst,
  1796. -m,
  1797. "not long and not node_recovery",
  1798. test/cloudtest/,
  1799. ]
  1800. agents:
  1801. # TODO(def-): Debezium DNS flakiness doesn't allow running on hetzner
  1802. # queue: hetzner-aarch64-4cpu-8gb
  1803. queue: linux-aarch64
  1804. sanitizer: skip
  1805. - id: cloudtest-slow
  1806. label: "Slow Cloudtest"
  1807. depends_on: build-aarch64
  1808. timeout_in_minutes: 45
  1809. env:
  1810. CLOUDTEST_CLUSTER_DEFINITION_FILE: "misc/kind/cluster.yaml"
  1811. agents:
  1812. # TODO: Debezium DNS flakiness doesn't allow running on hetzner
  1813. # queue: hetzner-aarch64-4cpu-8gb
  1814. queue: linux-aarch64-medium
  1815. plugins:
  1816. - ./ci/plugins/cloudtest:
  1817. args: [-m=long, test/cloudtest/test_storage_shared_fate.py]
  1818. sanitizer: skip
  1819. - id: txn-wal-fencing
  1820. label: "Txn-wal fencing with :azure: blob store"
  1821. depends_on: build-aarch64
  1822. timeout_in_minutes: 120
  1823. parallelism: 2
  1824. plugins:
  1825. - ./ci/plugins/mzcompose:
  1826. composition: txn-wal-fencing
  1827. args: [--azurite]
  1828. agents:
  1829. queue: hetzner-aarch64-4cpu-8gb
  1830. - group: "Copy To S3"
  1831. key: copy-to-s3
  1832. steps:
  1833. - id: copy-to-s3-1-replica
  1834. label: "Copy To S3 (1 replica)"
  1835. depends_on: build-aarch64
  1836. timeout_in_minutes: 60
  1837. plugins:
  1838. - ./ci/plugins/mzcompose:
  1839. composition: copy-to-s3
  1840. run: nightly
  1841. agents:
  1842. queue: hetzner-aarch64-8cpu-16gb
  1843. - id: copy-to-s3-2-replicas
  1844. label: "Copy To S3 (2 replicas)"
  1845. depends_on: build-aarch64
  1846. timeout_in_minutes: 60
  1847. plugins:
  1848. - ./ci/plugins/mzcompose:
  1849. composition: copy-to-s3
  1850. run: nightly
  1851. args: [--default-size=2]
  1852. agents:
  1853. queue: hetzner-aarch64-8cpu-16gb
  1854. - id: backup-restore
  1855. label: "CRDB / Persist backup and restore"
  1856. depends_on: build-aarch64
  1857. timeout_in_minutes: 30
  1858. agents:
  1859. queue: hetzner-aarch64-4cpu-8gb
  1860. plugins:
  1861. - ./ci/plugins/mzcompose:
  1862. composition: backup-restore
  1863. - id: backup-restore-postgres
  1864. label: "Postgres / Persist backup and restore"
  1865. depends_on: build-aarch64
  1866. timeout_in_minutes: 30
  1867. agents:
  1868. queue: hetzner-aarch64-4cpu-8gb
  1869. plugins:
  1870. - ./ci/plugins/mzcompose:
  1871. composition: backup-restore-postgres
  1872. - id: replica-isolation
  1873. label: Replica isolation
  1874. depends_on: build-aarch64
  1875. timeout_in_minutes: 90
  1876. inputs: [test/replica-isolation]
  1877. plugins:
  1878. - ./ci/plugins/mzcompose:
  1879. composition: replica-isolation
  1880. agents:
  1881. queue: hetzner-aarch64-4cpu-8gb
  1882. - id: 0dt
  1883. label: Zero downtime
  1884. depends_on: build-x86_64
  1885. timeout_in_minutes: 240
  1886. parallelism: 2
  1887. plugins:
  1888. - ./ci/plugins/mzcompose:
  1889. composition: 0dt
  1890. agents:
  1891. # More consistent results
  1892. queue: hetzner-x86-64-dedi-16cpu-64gb
  1893. - id: emulator
  1894. label: Materialize Emulator
  1895. depends_on: build-aarch64
  1896. timeout_in_minutes: 30
  1897. plugins:
  1898. - ./ci/plugins/mzcompose:
  1899. composition: emulator
  1900. agents:
  1901. queue: hetzner-aarch64-4cpu-8gb
  1902. - id: sqllogictest
  1903. label: ":bulb: SQL logic tests (4 replicas)"
  1904. depends_on: build-aarch64
  1905. timeout_in_minutes: 480
  1906. parallelism: 4
  1907. agents:
  1908. queue: hetzner-aarch64-16cpu-32gb
  1909. plugins:
  1910. - ./ci/plugins/mzcompose:
  1911. composition: sqllogictest
  1912. run: slow-tests
  1913. args: [--replicas=4]
  1914. - group: "Race Condition"
  1915. key: race-condition
  1916. steps:
  1917. - id: race-condition-subsequent
  1918. label: "Race Condition Test (subsequent)"
  1919. depends_on: build-aarch64
  1920. timeout_in_minutes: 180
  1921. agents:
  1922. queue: hetzner-aarch64-8cpu-16gb
  1923. plugins:
  1924. - ./ci/plugins/mzcompose:
  1925. composition: race-condition
  1926. args: [--runtime=2800, --scenario=subsequent]
  1927. - id: race-condition-subsequent-100
  1928. label: "Race Condition Test (subsequent, 100 objects)"
  1929. depends_on: build-aarch64
  1930. timeout_in_minutes: 180
  1931. agents:
  1932. queue: hetzner-aarch64-8cpu-16gb
  1933. plugins:
  1934. - ./ci/plugins/mzcompose:
  1935. composition: race-condition
  1936. args: [--runtime=2800, --scenario=subsequent, --num-objects=100]
  1937. - id: race-condition-subsequent-chain
  1938. label: "Race Condition Test (subsequent chain)"
  1939. depends_on: build-aarch64
  1940. timeout_in_minutes: 180
  1941. agents:
  1942. queue: hetzner-aarch64-8cpu-16gb
  1943. plugins:
  1944. - ./ci/plugins/mzcompose:
  1945. composition: race-condition
  1946. args: [--runtime=2800, --scenario=subsequent-chain]
  1947. - id: race-condition-subsequent-chain-100
  1948. label: "Race Condition Test (subsequent chain, 100 objects)"
  1949. depends_on: build-aarch64
  1950. timeout_in_minutes: 180
  1951. agents:
  1952. queue: hetzner-aarch64-8cpu-16gb
  1953. plugins:
  1954. - ./ci/plugins/mzcompose:
  1955. composition: race-condition
  1956. args: [--runtime=2800, --scenario=subsequent-chain, --num-objects=100]
  1957. - id: race-condition-concurrent
  1958. label: "Race Condition Test (concurrent)"
  1959. depends_on: build-aarch64
  1960. timeout_in_minutes: 180
  1961. agents:
  1962. queue: hetzner-aarch64-8cpu-16gb
  1963. plugins:
  1964. - ./ci/plugins/mzcompose:
  1965. composition: race-condition
  1966. args: [--runtime=2800, --scenario=concurrent]
  1967. skip: "Not stable yet, not clear if this is a product issue"
  1968. - group: "Language tests"
  1969. key: language-tests
  1970. steps:
  1971. - id: lang-csharp
  1972. label: ":csharp: tests"
  1973. depends_on: build-aarch64
  1974. timeout_in_minutes: 30
  1975. plugins:
  1976. - ./ci/plugins/mzcompose:
  1977. composition: csharp
  1978. agents:
  1979. queue: hetzner-aarch64-4cpu-8gb
  1980. - id: lang-js
  1981. label: ":js: tests"
  1982. depends_on: build-aarch64
  1983. timeout_in_minutes: 30
  1984. plugins:
  1985. - ./ci/plugins/mzcompose:
  1986. composition: js
  1987. agents:
  1988. queue: hetzner-aarch64-4cpu-8gb
  1989. - id: lang-java
  1990. label: ":java: tests"
  1991. depends_on: build-aarch64
  1992. timeout_in_minutes: 30
  1993. plugins:
  1994. - ./ci/plugins/mzcompose:
  1995. composition: java
  1996. agents:
  1997. queue: hetzner-aarch64-4cpu-8gb
  1998. - id: lang-python
  1999. label: ":python: tests"
  2000. depends_on: build-aarch64
  2001. timeout_in_minutes: 30
  2002. plugins:
  2003. - ./ci/plugins/mzcompose:
  2004. composition: python
  2005. agents:
  2006. queue: hetzner-aarch64-4cpu-8gb
  2007. - id: lang-ruby
  2008. label: ":ruby: tests"
  2009. depends_on: build-aarch64
  2010. timeout_in_minutes: 30
  2011. plugins:
  2012. - ./ci/plugins/mzcompose:
  2013. composition: ruby
  2014. agents:
  2015. queue: hetzner-aarch64-4cpu-8gb