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.

293 lines
8.9KB

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