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.
 
 
 

331 lines
10 KiB

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