The Gatekeeper, or a project gating system
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

.zuul.yaml 8.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. - nodeset:
  2. name: zuul-functional-temp-master
  3. nodes:
  4. - name: controller
  5. label: ubuntu-xenial
  6. - name: node1
  7. label: ubuntu-xenial
  8. - name: node2
  9. label: ubuntu-xenial
  10. groups:
  11. - name: node
  12. nodes:
  13. - node1
  14. - node2
  15. - job:
  16. name: zuul-stream-functional
  17. parent: multinode
  18. nodeset: zuul-functional-temp-master
  19. pre-run: playbooks/zuul-stream/pre.yaml
  20. run: playbooks/zuul-stream/functional.yaml
  21. post-run:
  22. - playbooks/zuul-stream/post.yaml
  23. - playbooks/zuul-stream/post-ara.yaml
  24. files:
  25. - zuul/ansible/.*
  26. - zuul/lib/ansible*
  27. - playbooks/zuul-stream/.*
  28. - job:
  29. name: zuul-stream-functional-2.5
  30. parent: zuul-stream-functional
  31. vars:
  32. zuul_ansible_version: 2.5
  33. - job:
  34. name: zuul-stream-functional-2.6
  35. parent: zuul-stream-functional
  36. vars:
  37. zuul_ansible_version: 2.6
  38. - job:
  39. name: zuul-stream-functional-2.7
  40. parent: zuul-stream-functional
  41. vars:
  42. zuul_ansible_version: 2.7
  43. - job:
  44. name: zuul-stream-functional-2.8
  45. parent: zuul-stream-functional
  46. vars:
  47. zuul_ansible_version: 2.8
  48. - job:
  49. name: zuul-tox-remote
  50. parent: tox
  51. vars:
  52. tox_envlist: remote
  53. tox_environment:
  54. ZUUL_SSH_KEY: /home/zuul/.ssh/id_rsa
  55. ZUUL_REMOTE_IPV4: "{{ nodepool.interface_ip }}"
  56. ZUUL_REMOTE_KEEP: "true"
  57. - job:
  58. name: zuul-build-dashboard
  59. parent: build-javascript-content
  60. success-url: 'npm/html/'
  61. files:
  62. - web/.*
  63. - playbooks/dashboard/.*
  64. vars:
  65. javascript_content_dir: "../zuul/web/static"
  66. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  67. zuul_api_url: https://zuul.openstack.org
  68. node_version: 10
  69. run: playbooks/dashboard/run.yaml
  70. - job:
  71. name: zuul-build-dashboard-multi-tenant
  72. parent: zuul-build-dashboard
  73. vars:
  74. zuul_api_url: https://softwarefactory-project.io/zuul
  75. node_version: 10
  76. # This job is run on changes to both Zuul and Nodepool; any changes to
  77. # the other project will be picked up via image builds which appear in
  78. # the buildset registry. It includes zuul as a required project
  79. # because that is where the docker-compose file is located.
  80. - job:
  81. name: zuul-quick-start
  82. description: Run the commands in the Zuul quick-start documentation.
  83. run: playbooks/quick-start/run.yaml
  84. post-run: playbooks/quick-start/post.yaml
  85. requires: docker-image
  86. required-projects:
  87. - zuul/zuul
  88. # Image building jobs
  89. - secret:
  90. name: zuul-dockerhub
  91. data:
  92. username: zuulzuul
  93. password: !encrypted/pkcs1-oaep
  94. - DFlbrDM5eUMptMGIVMXV1g455xOJLi92UYF08Z2/JlIGu3t6v052o9FKlVyj1ZmpXs5+2
  95. JTa5jHkLTvTsYs9fCaNcQc2nmViCyWNlbOMzjB17uiZOaYFNs1sMqZcUZbGEz7Y8ds6Qq
  96. NBXI10jWFPTah4QxUuBvUbT3vmjnUToCzexl5ZGhKgijcnROWfUsnlCdugpgoNIcPsUki
  97. zty5FotDihnrC8n8vIomVK6EClY38ty97pLrADzFDd+Cos/OUlvi2xooUhzx8Bn020rJA
  98. lqEU5v8LGXp5QkHx0MSDx6JY6KppJ/4p/yM+4By6l+A20zdcimxmgiNc9rMWPwDj7xsao
  99. m7NAZWmWqOO0Xkhgt6WOfugwgt9X46sgs2+yDEfbnI5ok8uRbAB/4FWj/KdpyXwhcf+O2
  100. wEfhxLwDbAoGONQPjb4YcZmCXtmR7Qe5t+n2jyczWXvrbaBDUQP5a+YtVNN/xhmQ7D740
  101. POlxv7bLxJAixzqaQ3d8Rz9ZEv6zzRuhWph32UQtZ1JxSNww+EvmXm2eEi2Q2z6pT1Cx/
  102. j2OrFyA2GL/UJOVb15VHKF6bgHPHWJtpjPFhqdcvBhVute4BWB+KPcWH+y+apHN1enK3H
  103. tNJO9iqm34nKwSuj5ExmFw50LtwR5/9FyRuRPq/vBL+8y82v8FDmeYsBeobn5M=
  104. - job:
  105. name: zuul-build-image
  106. parent: opendev-build-docker-image
  107. description: Build Docker images.
  108. allowed-projects: zuul/zuul
  109. vars: &zuul_image_vars
  110. docker_images:
  111. - context: .
  112. repository: zuul/zuul
  113. target: zuul
  114. - context: .
  115. repository: zuul/zuul-executor
  116. target: zuul-executor
  117. - context: .
  118. repository: zuul/zuul-fingergw
  119. target: zuul-fingergw
  120. - context: .
  121. repository: zuul/zuul-merger
  122. target: zuul-merger
  123. - context: .
  124. repository: zuul/zuul-scheduler
  125. target: zuul-scheduler
  126. - context: .
  127. repository: zuul/zuul-web
  128. target: zuul-web
  129. - job:
  130. name: zuul-upload-image
  131. parent: opendev-upload-docker-image
  132. description: Build Docker images and upload to Docker Hub.
  133. allowed-projects: zuul/zuul
  134. secrets:
  135. name: docker_credentials
  136. secret: zuul-dockerhub
  137. pass-to-parent: true
  138. vars: *zuul_image_vars
  139. - job:
  140. name: zuul-promote-image
  141. parent: opendev-promote-docker-image
  142. description: Promote previously uploaded Docker images.
  143. allowed-projects: zuul/zuul
  144. secrets:
  145. name: docker_credentials
  146. secret: zuul-dockerhub
  147. pass-to-parent: true
  148. nodeset:
  149. nodes: []
  150. vars: *zuul_image_vars
  151. - job:
  152. name: zuul-build-python-release
  153. parent: build-python-release
  154. pre-run: playbooks/release/pre.yaml
  155. vars: &zuul_build_vars
  156. node_version: 10
  157. release_python: python3
  158. - job:
  159. name: zuul-release-python
  160. parent: opendev-release-python
  161. pre-run: playbooks/release/pre.yaml
  162. vars: *zuul_build_vars
  163. - project:
  164. check:
  165. jobs:
  166. - zuul-build-image
  167. - zuul-tox-docs
  168. - tox-pep8
  169. - tox-py35:
  170. irrelevant-files:
  171. - zuul/cmd/migrate.py
  172. - playbooks/zuul-migrate/.*
  173. nodeset: ubuntu-xenial
  174. timeout: 3600 # 60 minutes
  175. - tox-py37:
  176. irrelevant-files:
  177. - zuul/cmd/migrate.py
  178. - playbooks/zuul-migrate/.*
  179. timeout: 3600 # 60 minutes
  180. nodeset: ubuntu-bionic
  181. - zuul-build-dashboard
  182. - zuul-build-dashboard-multi-tenant
  183. - nodejs-npm-run-lint:
  184. vars:
  185. node_version: 10
  186. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  187. - nodejs-npm-run-test:
  188. vars:
  189. node_version: 10
  190. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  191. success-url: 'npm/reports/bundle.html'
  192. files:
  193. - web/.*
  194. - zuul-stream-functional-2.5
  195. - zuul-stream-functional-2.6
  196. - zuul-stream-functional-2.7
  197. - zuul-stream-functional-2.8
  198. - zuul-tox-remote:
  199. timeout: 2700 # 45 minutes
  200. - zuul-quick-start:
  201. dependencies: zuul-build-image
  202. - nodepool-zuul-functional:
  203. voting: false
  204. - zuul-build-python-release
  205. - build-javascript-content-tarball:
  206. vars:
  207. node_version: 10
  208. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  209. create_tarball_directory: build
  210. gate:
  211. jobs:
  212. - zuul-upload-image
  213. - zuul-tox-docs
  214. - tox-pep8
  215. - tox-py35:
  216. irrelevant-files:
  217. - zuul/cmd/migrate.py
  218. - playbooks/zuul-migrate/.*
  219. nodeset: ubuntu-xenial
  220. timeout: 3600 # 60 minutes
  221. - tox-py37:
  222. irrelevant-files:
  223. - zuul/cmd/migrate.py
  224. - playbooks/zuul-migrate/.*
  225. timeout: 3600 # 60 minutes
  226. nodeset: ubuntu-bionic
  227. - zuul-build-dashboard
  228. - nodejs-npm-run-lint:
  229. vars:
  230. node_version: 10
  231. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  232. - nodejs-npm-run-test:
  233. vars:
  234. node_version: 10
  235. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  236. success-url: 'npm/reports/bundle.html'
  237. files:
  238. - web/.*
  239. - zuul-stream-functional-2.5
  240. - zuul-stream-functional-2.6
  241. - zuul-stream-functional-2.7
  242. - zuul-stream-functional-2.8
  243. - zuul-tox-remote:
  244. timeout: 2700 # 45 minutes
  245. - zuul-quick-start:
  246. dependencies: zuul-upload-image
  247. - zuul-build-python-release
  248. - build-javascript-content-tarball:
  249. vars:
  250. node_version: 10
  251. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  252. create_tarball_directory: build
  253. promote:
  254. jobs:
  255. - zuul-promote-image
  256. - zuul-promote-docs
  257. - opendev-promote-python:
  258. vars:
  259. download_artifact_job: zuul-build-python-release
  260. - opendev-promote-javascript-content
  261. release:
  262. jobs:
  263. - zuul-release-python
  264. - zuul-publish-tox-docs