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.
 
 
 

352 lines
11 KiB

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