azure-pipelines.yml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. trigger:
  2. batch: true
  3. branches:
  4. include:
  5. - devel
  6. - stable-*
  7. pr:
  8. autoCancel: true
  9. branches:
  10. include:
  11. - devel
  12. - stable-*
  13. schedules:
  14. - cron: 0 7 * * *
  15. displayName: Nightly
  16. always: true
  17. branches:
  18. include:
  19. - devel
  20. - stable-*
  21. variables:
  22. - name: checkoutPath
  23. value: ansible
  24. - name: coverageBranches
  25. value: devel
  26. - name: entryPoint
  27. value: .azure-pipelines/commands/entry-point.sh
  28. - name: fetchDepth
  29. value: 500
  30. - name: defaultContainer
  31. value: quay.io/ansible/azure-pipelines-test-container:4.0.1
  32. pool: Standard
  33. stages:
  34. - stage: Sanity
  35. dependsOn: []
  36. jobs:
  37. - template: templates/matrix.yml
  38. parameters:
  39. nameFormat: Test {0}
  40. testFormat: sanity/{0}
  41. targets:
  42. - test: 1
  43. - test: 2
  44. - stage: Units
  45. dependsOn: []
  46. jobs:
  47. - template: templates/matrix.yml
  48. parameters:
  49. nameFormat: Python {0}
  50. testFormat: units/{0}
  51. targets:
  52. - test: 2.7
  53. - test: 3.6
  54. - test: 3.7
  55. - test: 3.8
  56. - test: 3.9
  57. - test: '3.10'
  58. - test: 3.11
  59. - test: 3.12
  60. - stage: Windows
  61. dependsOn: []
  62. jobs:
  63. - template: templates/matrix.yml
  64. parameters:
  65. nameFormat: Server {0}
  66. testFormat: windows/{0}/1
  67. targets:
  68. - test: 2016
  69. - test: 2019
  70. - test: 2022
  71. - stage: Remote
  72. dependsOn: []
  73. jobs:
  74. - template: templates/matrix.yml # context/target
  75. parameters:
  76. targets:
  77. - name: macOS 13.2
  78. test: macos/13.2
  79. - name: RHEL 7.9
  80. test: rhel/7.9
  81. - name: RHEL 8.8 py36
  82. test: rhel/8.8@3.6
  83. - name: RHEL 8.8 py311
  84. test: rhel/8.8@3.11
  85. - name: RHEL 9.2 py39
  86. test: rhel/9.2@3.9
  87. - name: RHEL 9.2 py311
  88. test: rhel/9.2@3.11
  89. - name: FreeBSD 13.2
  90. test: freebsd/13.2
  91. groups:
  92. - 1
  93. - 2
  94. - template: templates/matrix.yml # context/controller
  95. parameters:
  96. targets:
  97. - name: macOS 13.2
  98. test: macos/13.2
  99. - name: RHEL 8.8
  100. test: rhel/8.8
  101. - name: RHEL 9.2
  102. test: rhel/9.2
  103. - name: FreeBSD 13.2
  104. test: freebsd/13.2
  105. groups:
  106. - 3
  107. - 4
  108. - 5
  109. - template: templates/matrix.yml # context/controller (ansible-test container management)
  110. parameters:
  111. targets:
  112. - name: Alpine 3.18
  113. test: alpine/3.18
  114. - name: Fedora 38
  115. test: fedora/38
  116. - name: RHEL 8.8
  117. test: rhel/8.8
  118. - name: RHEL 9.2
  119. test: rhel/9.2
  120. - name: Ubuntu 22.04
  121. test: ubuntu/22.04
  122. groups:
  123. - 6
  124. - stage: Docker
  125. dependsOn: []
  126. jobs:
  127. - template: templates/matrix.yml
  128. parameters:
  129. testFormat: linux/{0}
  130. targets:
  131. - name: Alpine 3
  132. test: alpine3
  133. - name: CentOS 7
  134. test: centos7
  135. - name: Fedora 38
  136. test: fedora38
  137. - name: openSUSE 15
  138. test: opensuse15
  139. - name: Ubuntu 20.04
  140. test: ubuntu2004
  141. - name: Ubuntu 22.04
  142. test: ubuntu2204
  143. groups:
  144. - 1
  145. - 2
  146. - template: templates/matrix.yml
  147. parameters:
  148. testFormat: linux/{0}
  149. targets:
  150. - name: Alpine 3
  151. test: alpine3
  152. - name: Fedora 38
  153. test: fedora38
  154. - name: Ubuntu 22.04
  155. test: ubuntu2204
  156. groups:
  157. - 3
  158. - 4
  159. - 5
  160. - stage: Galaxy
  161. dependsOn: []
  162. jobs:
  163. - template: templates/matrix.yml
  164. parameters:
  165. nameFormat: Python {0}
  166. testFormat: galaxy/{0}/1
  167. targets:
  168. - test: '3.10'
  169. - test: 3.11
  170. - test: 3.12
  171. - stage: Generic
  172. dependsOn: []
  173. jobs:
  174. - template: templates/matrix.yml
  175. parameters:
  176. nameFormat: Python {0}
  177. testFormat: generic/{0}/1
  178. targets:
  179. - test: '3.10'
  180. - test: 3.11
  181. - test: 3.12
  182. - stage: Incidental_Windows
  183. displayName: Incidental Windows
  184. dependsOn: []
  185. jobs:
  186. - template: templates/matrix.yml
  187. parameters:
  188. nameFormat: Server {0}
  189. testFormat: i/windows/{0}
  190. targets:
  191. - test: 2016
  192. - test: 2019
  193. - test: 2022
  194. - stage: Incidental
  195. dependsOn: []
  196. jobs:
  197. - template: templates/matrix.yml
  198. parameters:
  199. testFormat: i/{0}/1
  200. targets:
  201. - name: IOS Python
  202. test: ios/csr1000v/
  203. - name: VyOS Python
  204. test: vyos/1.1.8/
  205. - stage: Summary
  206. condition: succeededOrFailed()
  207. dependsOn:
  208. - Sanity
  209. - Units
  210. - Windows
  211. - Remote
  212. - Docker
  213. - Galaxy
  214. - Generic
  215. - Incidental_Windows
  216. - Incidental
  217. jobs:
  218. - template: templates/coverage.yml