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.
 
 
 

338 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: "build"
  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. - job:
  204. name: zuul-release-python
  205. parent: opendev-release-python
  206. pre-run: playbooks/release/pre.yaml
  207. - project:
  208. vars:
  209. node_version: 14
  210. release_python: python3
  211. check:
  212. jobs:
  213. - zuul-build-image
  214. - zuul-tox-docs
  215. - tox-linters:
  216. vars:
  217. tox_install_bindep: false
  218. - tox-py36:
  219. irrelevant-files:
  220. - zuul/cmd/migrate.py
  221. - playbooks/zuul-migrate/.*
  222. nodeset: ubuntu-bionic
  223. timeout: 4800 # 80 minutes
  224. vars: &zuul_tox_vars
  225. test_setup_environment:
  226. ZUUL_TEST_ROOT: /tmp/zuul-test
  227. YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
  228. tox_environment:
  229. ZUUL_TEST_ROOT: /tmp/zuul-test
  230. YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
  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: *zuul_tox_vars
  238. - zuul-build-dashboard-openstack-whitelabel
  239. - zuul-build-dashboard-software-factory
  240. - zuul-build-dashboard-opendev
  241. - nodejs-run-lint:
  242. vars:
  243. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  244. - nodejs-run-test:
  245. vars:
  246. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  247. success-url: 'npm/reports/bundle.html'
  248. files:
  249. - web/.*
  250. - zuul-stream-functional-2.8
  251. - zuul-stream-functional-2.9
  252. - zuul-tox-remote:
  253. timeout: 2700 # 45 minutes
  254. - zuul-quick-start:
  255. requires: nodepool-container-image
  256. dependencies: zuul-build-image
  257. - nodepool-zuul-functional:
  258. voting: false
  259. - zuul-build-python-release
  260. gate:
  261. jobs:
  262. - zuul-upload-image
  263. - zuul-tox-docs
  264. - tox-linters:
  265. vars:
  266. tox_install_bindep: false
  267. - tox-py36:
  268. irrelevant-files:
  269. - zuul/cmd/migrate.py
  270. - playbooks/zuul-migrate/.*
  271. nodeset: ubuntu-bionic
  272. timeout: 4800 # 80 minutes
  273. vars: *zuul_tox_vars
  274. - tox-py38:
  275. irrelevant-files:
  276. - zuul/cmd/migrate.py
  277. - playbooks/zuul-migrate/.*
  278. timeout: 4800 # 80 minutes
  279. nodeset: ubuntu-bionic
  280. vars: *zuul_tox_vars
  281. - zuul-build-dashboard
  282. - nodejs-run-lint:
  283. vars:
  284. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  285. - nodejs-run-test:
  286. vars:
  287. zuul_work_dir: "{{ zuul.project.src_dir }}/web"
  288. success-url: 'npm/reports/bundle.html'
  289. files:
  290. - web/.*
  291. - zuul-stream-functional-2.8
  292. - zuul-stream-functional-2.9
  293. - zuul-tox-remote:
  294. timeout: 2700 # 45 minutes
  295. - zuul-quick-start:
  296. requires: nodepool-container-image
  297. dependencies: zuul-upload-image
  298. - zuul-build-python-release
  299. promote:
  300. jobs:
  301. - zuul-promote-image
  302. - zuul-promote-docs
  303. - opendev-promote-python:
  304. vars:
  305. download_artifact_job: zuul-build-python-release
  306. - opendev-promote-javascript-deployment:
  307. vars:
  308. download_artifact_job: zuul-build-dashboard
  309. release:
  310. jobs:
  311. - zuul-release-python
  312. - zuul-publish-tox-docs
  313. - upload-docker-image:
  314. secrets:
  315. name: docker_credentials
  316. secret: zuul-dockerhub
  317. pass-to-parent: true
  318. vars:
  319. <<: *zuul_image_vars
  320. upload_docker_image_promote: false