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.

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