.azure-pipelines.yml 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. # https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml
  2. variables:
  3. MIN_VM_IMAGE: macOS-12
  4. MIN_XCODE_VERSION: 13.1
  5. MIN_PLATFORM_VERSION: 15.0
  6. MIN_TV_PLATFORM_VERSION: 15.0
  7. MIN_TV_DEVICE_NAME: Apple TV 4K (2nd generation)
  8. MIN_IPHONE_DEVICE_NAME: iPhone 11
  9. MIN_IPAD_DEVICE_NAME: iPad Pro (11-inch) (3rd generation)
  10. MAX_VM_IMAGE: macOS-12
  11. MAX_XCODE_VERSION: 14.2
  12. MAX_PLATFORM_VERSION: 16.2
  13. MAX_PLATFORM_VERSION_TV: 16.1
  14. MAX_IPHONE_DEVICE_NAME: iPhone 13
  15. MAX_TV_DEVICE_NAME: Apple TV 4K (2nd generation)
  16. MAX_IPAD_DEVICE_NAME: iPad Pro (11-inch) (3rd generation)
  17. DEFAULT_NODE_VERSION: "18.x"
  18. pool:
  19. vmImage: "$(MAX_VM_IMAGE)"
  20. parameters:
  21. - name: integrationJobs
  22. type: object
  23. default:
  24. - action: int_test_1
  25. dest: iphone
  26. - action: int_test_2
  27. dest: iphone
  28. - action: int_test_3
  29. dest: iphone
  30. - action: int_test_1
  31. dest: ipad
  32. - action: int_test_2
  33. dest: ipad
  34. - action: int_test_3
  35. dest: ipad
  36. stages:
  37. - stage: Unit_Tests_And_Linters
  38. jobs:
  39. # region Build
  40. - template: ./azure-templates/base_job.yml
  41. parameters:
  42. name: Generic_iOS_Build_Max_Xcode
  43. action: build
  44. target: runner
  45. sdk: sim
  46. dest: generic
  47. codeSign: no
  48. xcodeVersion: $(MAX_XCODE_VERSION)
  49. vmImage: $(MAX_VM_IMAGE)
  50. - template: ./azure-templates/base_job.yml
  51. parameters:
  52. name: Generic_tvOS_Build_Max_Xcode
  53. action: build
  54. target: tv_runner
  55. sdk: tv_sim
  56. dest: tv_generic
  57. codeSign: no
  58. xcodeVersion: $(MAX_XCODE_VERSION)
  59. vmImage: $(MAX_VM_IMAGE)
  60. - template: ./azure-templates/base_job.yml
  61. parameters:
  62. name: iOS_Build_Max_Xcode
  63. action: build
  64. target: runner
  65. sdk: sim
  66. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  67. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  68. iosVersion: $(MAX_PLATFORM_VERSION)
  69. xcodeVersion: $(MAX_XCODE_VERSION)
  70. vmImage: $(MAX_VM_IMAGE)
  71. - template: ./azure-templates/base_job.yml
  72. parameters:
  73. name: tvOS_Build_Max_Xcode
  74. action: build
  75. target: tv_runner
  76. sdk: tv_sim
  77. tvModel: $(MAX_TV_DEVICE_NAME)
  78. tvVersion: $(MAX_PLATFORM_VERSION_TV)
  79. xcodeVersion: $(MAX_XCODE_VERSION)
  80. vmImage: $(MAX_VM_IMAGE)
  81. - template: ./azure-templates/base_job.yml
  82. parameters:
  83. name: Generic_iOS_Build_Min_Xcode
  84. action: build
  85. target: runner
  86. sdk: sim
  87. dest: generic
  88. codeSign: no
  89. xcodeVersion: $(MIN_XCODE_VERSION)
  90. vmImage: $(MIN_VM_IMAGE)
  91. extraXcArgs: IPHONEOS_DEPLOYMENT_TARGET=$(MIN_PLATFORM_VERSION)
  92. - template: ./azure-templates/base_job.yml
  93. parameters:
  94. name: Generic_tvOS_Build_Min_Xcode
  95. action: build
  96. target: tv_runner
  97. dest: tv_generic
  98. sdk: tv_sim
  99. codeSign: no
  100. xcodeVersion: $(MIN_XCODE_VERSION)
  101. vmImage: $(MIN_VM_IMAGE)
  102. - template: ./azure-templates/base_job.yml
  103. parameters:
  104. name: iOS_Build_Min_Xcode
  105. action: build
  106. target: runner
  107. sdk: sim
  108. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  109. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  110. iosVersion: $(MIN_PLATFORM_VERSION)
  111. xcodeVersion: $(MIN_XCODE_VERSION)
  112. vmImage: $(MIN_VM_IMAGE)
  113. - template: ./azure-templates/base_job.yml
  114. parameters:
  115. name: tvOS_Build_Min_Xcode
  116. action: build
  117. target: tv_runner
  118. sdk: tv_sim
  119. dest: tv
  120. tvModel: $(MIN_TV_DEVICE_NAME)
  121. tvVersion: $(MIN_TV_PLATFORM_VERSION)
  122. xcodeVersion: $(MIN_XCODE_VERSION)
  123. vmImage: $(MIN_VM_IMAGE)
  124. # endregion
  125. # region Analyze
  126. - template: ./azure-templates/base_job.yml
  127. parameters:
  128. name: iOS_Lib_Analyze_Max_Xcode
  129. action: analyze
  130. sdk: sim
  131. target: lib
  132. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  133. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  134. iosVersion: $(MAX_PLATFORM_VERSION)
  135. xcodeVersion: $(MAX_XCODE_VERSION)
  136. vmImage: $(MAX_VM_IMAGE)
  137. - template: ./azure-templates/base_job.yml
  138. parameters:
  139. name: iOS_Runner_Analyze_Max_Xcode
  140. action: analyze
  141. sdk: sim
  142. target: runner
  143. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  144. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  145. iosVersion: $(MAX_PLATFORM_VERSION)
  146. xcodeVersion: $(MAX_XCODE_VERSION)
  147. vmImage: $(MAX_VM_IMAGE)
  148. - template: ./azure-templates/base_job.yml
  149. parameters:
  150. name: tvOS_Lib_Analyze_Max_Xcode
  151. action: analyze
  152. target: tv_lib
  153. sdk: tv_sim
  154. tvModel: $(MAX_TV_DEVICE_NAME)
  155. tvVersion: $(MAX_PLATFORM_VERSION_TV)
  156. xcodeVersion: $(MAX_XCODE_VERSION)
  157. vmImage: $(MAX_VM_IMAGE)
  158. - template: ./azure-templates/base_job.yml
  159. parameters:
  160. name: tvOS_Runner_Analyze_Max_Xcode
  161. action: analyze
  162. target: tv_runner
  163. sdk: tv_sim
  164. tvModel: $(MAX_TV_DEVICE_NAME)
  165. tvVersion: $(MAX_PLATFORM_VERSION_TV)
  166. xcodeVersion: $(MAX_XCODE_VERSION)
  167. vmImage: $(MAX_VM_IMAGE)
  168. - template: ./azure-templates/base_job.yml
  169. parameters:
  170. name: iOS_Lib_Analyze_Min_Xcode
  171. action: analyze
  172. target: lib
  173. sdk: sim
  174. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  175. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  176. iosVersion: $(MIN_PLATFORM_VERSION)
  177. xcodeVersion: $(MIN_XCODE_VERSION)
  178. vmImage: $(MIN_VM_IMAGE)
  179. - template: ./azure-templates/base_job.yml
  180. parameters:
  181. name: iOS_Runner_Analyze_Min_Xcode
  182. action: analyze
  183. target: runner
  184. sdk: sim
  185. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  186. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  187. iosVersion: $(MIN_PLATFORM_VERSION)
  188. xcodeVersion: $(MIN_XCODE_VERSION)
  189. vmImage: $(MIN_VM_IMAGE)
  190. - template: ./azure-templates/base_job.yml
  191. parameters:
  192. name: tvOS_Lib_Analyze_Min_Xcode
  193. action: analyze
  194. target: tv_lib
  195. sdk: tv_sim
  196. tvModel: $(MIN_TV_DEVICE_NAME)
  197. tvVersion: $(MIN_TV_PLATFORM_VERSION)
  198. xcodeVersion: $(MIN_XCODE_VERSION)
  199. vmImage: $(MIN_VM_IMAGE)
  200. - template: ./azure-templates/base_job.yml
  201. parameters:
  202. name: tvOS_Runner_Analyze_Min_Xcode
  203. action: analyze
  204. target: tv_runner
  205. sdk: tv_sim
  206. tvModel: $(MIN_TV_DEVICE_NAME)
  207. tvVersion: $(MIN_TV_PLATFORM_VERSION)
  208. xcodeVersion: $(MIN_XCODE_VERSION)
  209. vmImage: $(MIN_VM_IMAGE)
  210. # endregion
  211. # region Unit Tests
  212. - template: ./azure-templates/base_job.yml
  213. parameters:
  214. name: iPhone_Unit_Test_Max_Xcode
  215. action: unit_test
  216. dest: iphone
  217. target: lib
  218. sdk: sim
  219. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  220. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  221. iosVersion: $(MAX_PLATFORM_VERSION)
  222. xcodeVersion: $(MAX_XCODE_VERSION)
  223. vmImage: $(MAX_VM_IMAGE)
  224. - template: ./azure-templates/base_job.yml
  225. parameters:
  226. name: iPad_Unit_Test_Max_Xcode
  227. action: unit_test
  228. dest: ipad
  229. target: lib
  230. sdk: sim
  231. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  232. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  233. iosVersion: $(MAX_PLATFORM_VERSION)
  234. xcodeVersion: $(MAX_XCODE_VERSION)
  235. vmImage: $(MAX_VM_IMAGE)
  236. - template: ./azure-templates/base_job.yml
  237. parameters:
  238. name: tvOS_Unit_Test_Max_Xcode
  239. action: tv_unit_test
  240. dest: tv
  241. target: tv_lib
  242. sdk: tv_sim
  243. tvModel: $(MAX_TV_DEVICE_NAME)
  244. tvVersion: $(MAX_PLATFORM_VERSION_TV)
  245. xcodeVersion: $(MAX_XCODE_VERSION)
  246. vmImage: $(MAX_VM_IMAGE)
  247. - template: ./azure-templates/base_job.yml
  248. parameters:
  249. name: iPhone_Unit_Test_Min_Xcode
  250. action: unit_test
  251. dest: iphone
  252. target: lib
  253. sdk: sim
  254. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  255. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  256. iosVersion: $(MIN_PLATFORM_VERSION)
  257. xcodeVersion: $(MIN_XCODE_VERSION)
  258. vmImage: $(MIN_VM_IMAGE)
  259. - template: ./azure-templates/base_job.yml
  260. parameters:
  261. name: iPad_Unit_Test_Min_Xcode
  262. action: unit_test
  263. dest: ipad
  264. target: lib
  265. sdk: sim
  266. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  267. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  268. iosVersion: $(MIN_PLATFORM_VERSION)
  269. xcodeVersion: $(MIN_XCODE_VERSION)
  270. vmImage: $(MIN_VM_IMAGE)
  271. - template: ./azure-templates/base_job.yml
  272. parameters:
  273. name: tvOS_Unit_Test_Min_Xcode
  274. action: tv_unit_test
  275. dest: tv
  276. target: tv_lib
  277. sdk: tv_sim
  278. tvModel: $(MIN_TV_DEVICE_NAME)
  279. tvVersion: $(MIN_TV_PLATFORM_VERSION)
  280. xcodeVersion: $(MIN_XCODE_VERSION)
  281. vmImage: $(MIN_VM_IMAGE)
  282. # endregion
  283. - stage: Integration_Tests
  284. jobs:
  285. # region Integration Tests Max Xcode
  286. - ${{ each job in parameters.integrationJobs }}:
  287. - template: ./azure-templates/base_job.yml
  288. parameters:
  289. name: ${{ job.dest }}_${{ job.action }}_Max_Xcode
  290. action: ${{ job.action }}
  291. dest: ${{ job.dest }}
  292. target: lib
  293. sdk: sim
  294. iphoneModel: $(MAX_IPHONE_DEVICE_NAME)
  295. ipadModel: $(MAX_IPAD_DEVICE_NAME)
  296. iosVersion: $(MAX_PLATFORM_VERSION)
  297. xcodeVersion: $(MAX_XCODE_VERSION)
  298. vmImage: $(MAX_VM_IMAGE)
  299. # endregion
  300. # region Integration Tests Min Xcode
  301. - ${{ each job in parameters.integrationJobs }}:
  302. - template: ./azure-templates/base_job.yml
  303. parameters:
  304. name: ${{ job.dest }}_${{ job.action }}_Min_Xcode
  305. action: ${{ job.action }}
  306. dest: ${{ job.dest }}
  307. target: lib
  308. sdk: sim
  309. iphoneModel: $(MIN_IPHONE_DEVICE_NAME)
  310. ipadModel: $(MIN_IPAD_DEVICE_NAME)
  311. iosVersion: $(MIN_PLATFORM_VERSION)
  312. xcodeVersion: $(MIN_XCODE_VERSION)
  313. vmImage: $(MIN_VM_IMAGE)
  314. # endregion