
This adds python 3.11 testing and drops python3.10 in order to keep testing only the bounds of what Zuul supports. Note that currently the python 3.11 available for jammy is based on an RC release. This should be fine as we do functional testing with a released python 3.11 and that is what people will consume via the docker images. Change-Id: Ic5ecf2e23b250d3dbf592983b17ec715d6e9722e
363 lines
11 KiB
YAML
363 lines
11 KiB
YAML
- queue:
|
|
name: zuul
|
|
|
|
- nodeset:
|
|
name: zuul-functional-temp-master
|
|
nodes:
|
|
# python_path in playbooks/zuul-stream/functional.yaml and
|
|
# callback_plugins in playbooks/zuul-stream/templates/ansible.cfg.j2
|
|
# need their python versions updated when these labels change to
|
|
# a platform that uses a different python version.
|
|
- name: controller
|
|
label: ubuntu-jammy
|
|
- name: node1
|
|
label: ubuntu-jammy
|
|
- name: node2
|
|
label: ubuntu-jammy
|
|
groups:
|
|
- name: node
|
|
nodes:
|
|
- node1
|
|
- node2
|
|
|
|
- job:
|
|
name: zuul-stream-functional
|
|
parent: multinode
|
|
nodeset: zuul-functional-temp-master
|
|
pre-run: playbooks/zuul-stream/pre.yaml
|
|
run: playbooks/zuul-stream/functional.yaml
|
|
post-run:
|
|
- playbooks/zuul-stream/post.yaml
|
|
files:
|
|
- zuul/ansible/.*
|
|
- zuul/lib/ansible*
|
|
- playbooks/zuul-stream/.*
|
|
|
|
- job:
|
|
name: zuul-stream-functional-6
|
|
parent: zuul-stream-functional
|
|
vars:
|
|
zuul_ansible_version: 6
|
|
|
|
- job:
|
|
name: zuul-tox
|
|
description: |
|
|
Zuul unit tests with ZooKeeper running
|
|
parent: tox
|
|
nodeset: ubuntu-jammy
|
|
pre-run: playbooks/zuul-tox/pre.yaml
|
|
post-run: playbooks/zuul-tox/post-system-logs.yaml
|
|
vars:
|
|
tox_environment:
|
|
ZUUL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
|
ZUUL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
|
ZUUL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
|
ZUUL_TEST_ROOT: /tmp/zuul-test
|
|
YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
|
|
test_setup_environment:
|
|
ZUUL_TEST_ROOT: /tmp/zuul-test
|
|
YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
|
|
|
|
- job:
|
|
name: zuul-tox-remote
|
|
parent: tox
|
|
nodeset: ubuntu-jammy
|
|
timeout: 2700 # 45 minutes
|
|
pre-run: playbooks/zuul-tox/pre.yaml
|
|
post-run: playbooks/zuul-tox/post-system-logs.yaml
|
|
vars:
|
|
tox_envlist: remote
|
|
tox_environment:
|
|
ZUUL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
|
ZUUL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
|
ZUUL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
|
ZUUL_SSH_KEY: /home/zuul/.ssh/id_rsa
|
|
ZUUL_REMOTE_IPV4: "{{ nodepool.interface_ip }}"
|
|
ZUUL_REMOTE_KEEP: "true"
|
|
|
|
- job:
|
|
name: zuul-tox-zuul-client
|
|
parent: zuul-tox
|
|
description: |
|
|
Test that Zuul and zuul-client work together.
|
|
required-projects:
|
|
- zuul/zuul
|
|
- zuul/zuul-client
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.projects['opendev.org/zuul/zuul'].src_dir }}"
|
|
tox_envlist: zuul_client
|
|
|
|
- job:
|
|
name: zuul-tox-py311
|
|
parent: zuul-tox
|
|
timeout: 7200 # 120 minutes
|
|
vars:
|
|
tox_envlist: py311
|
|
python_version: "3.11"
|
|
|
|
- job:
|
|
name: zuul-tox-py38
|
|
parent: zuul-tox
|
|
timeout: 7200 # 120 minutes
|
|
vars:
|
|
tox_envlist: py38
|
|
python_version: "3.8"
|
|
nodeset: ubuntu-focal
|
|
|
|
- job:
|
|
name: zuul-tox-py311-multi-scheduler
|
|
parent: zuul-tox-py311
|
|
voting: false
|
|
vars:
|
|
tox_environment:
|
|
ZUUL_SCHEDULER_COUNT: 2
|
|
|
|
- job:
|
|
name: zuul-build-dashboard
|
|
parent: build-javascript-deployment
|
|
description: |
|
|
Builds the zuul dashboard without an overridden API URL.
|
|
files: &zuul_build_dashboard_files
|
|
- web/.*
|
|
- playbooks/dashboard/.*
|
|
vars:
|
|
javascript_content_dir: "build"
|
|
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
|
|
create_tarball_directory: build
|
|
run: playbooks/dashboard/run.yaml
|
|
nodeset: ubuntu-jammy
|
|
|
|
- job:
|
|
name: zuul-build-dashboard-openstack-whitelabel
|
|
parent: zuul-build-dashboard
|
|
description: |
|
|
Builds the zuul dashboard with API URL pointing to
|
|
https://zuul.openstack.org, which tests whitelabeled
|
|
deployments.
|
|
vars:
|
|
zuul_api_url: https://zuul.openstack.org
|
|
|
|
- job:
|
|
name: zuul-build-dashboard-software-factory
|
|
parent: zuul-build-dashboard
|
|
description: |
|
|
Builds the zuul dashboard with API URL pointing to
|
|
https://softwarefactory-project.io/zuul, which tests
|
|
multi-tenant deployments on a suburl, as well as letting
|
|
us check that dashboard changes won't break the
|
|
softwarefactory service.
|
|
vars:
|
|
zuul_api_url: https://softwarefactory-project.io/zuul
|
|
|
|
- job:
|
|
name: zuul-build-dashboard-opendev
|
|
parent: zuul-build-dashboard
|
|
description: |
|
|
Builds the zuul dashboard with API URL pointing to
|
|
https://zuul.opendev.org, which tests multi-tenant
|
|
deployments not on a suburl, as well as letting us
|
|
check that dashboard changes won't break the
|
|
OpenDev service.
|
|
vars:
|
|
zuul_api_url: https://zuul.opendev.org
|
|
|
|
# This job is run on changes to both Zuul and Nodepool; any changes to
|
|
# the other project will be picked up via image builds which appear in
|
|
# the buildset registry. It includes zuul as a required project
|
|
# because that is where the docker-compose file is located.
|
|
- job:
|
|
name: zuul-quick-start
|
|
parent: opendev-buildset-registry-consumer
|
|
description: Run the commands in the Zuul tutorial quick-start documentation.
|
|
pre-run: playbooks/tutorial/pre.yaml
|
|
run: playbooks/tutorial/run.yaml
|
|
post-run: playbooks/tutorial/post.yaml
|
|
required-projects:
|
|
- zuul/zuul
|
|
nodeset: ubuntu-jammy
|
|
|
|
# Image building jobs
|
|
- secret:
|
|
name: zuul-dockerhub
|
|
data:
|
|
username: zuulzuul
|
|
password: !encrypted/pkcs1-oaep
|
|
- DFlbrDM5eUMptMGIVMXV1g455xOJLi92UYF08Z2/JlIGu3t6v052o9FKlVyj1ZmpXs5+2
|
|
JTa5jHkLTvTsYs9fCaNcQc2nmViCyWNlbOMzjB17uiZOaYFNs1sMqZcUZbGEz7Y8ds6Qq
|
|
NBXI10jWFPTah4QxUuBvUbT3vmjnUToCzexl5ZGhKgijcnROWfUsnlCdugpgoNIcPsUki
|
|
zty5FotDihnrC8n8vIomVK6EClY38ty97pLrADzFDd+Cos/OUlvi2xooUhzx8Bn020rJA
|
|
lqEU5v8LGXp5QkHx0MSDx6JY6KppJ/4p/yM+4By6l+A20zdcimxmgiNc9rMWPwDj7xsao
|
|
m7NAZWmWqOO0Xkhgt6WOfugwgt9X46sgs2+yDEfbnI5ok8uRbAB/4FWj/KdpyXwhcf+O2
|
|
wEfhxLwDbAoGONQPjb4YcZmCXtmR7Qe5t+n2jyczWXvrbaBDUQP5a+YtVNN/xhmQ7D740
|
|
POlxv7bLxJAixzqaQ3d8Rz9ZEv6zzRuhWph32UQtZ1JxSNww+EvmXm2eEi2Q2z6pT1Cx/
|
|
j2OrFyA2GL/UJOVb15VHKF6bgHPHWJtpjPFhqdcvBhVute4BWB+KPcWH+y+apHN1enK3H
|
|
tNJO9iqm34nKwSuj5ExmFw50LtwR5/9FyRuRPq/vBL+8y82v8FDmeYsBeobn5M=
|
|
|
|
- job:
|
|
name: zuul-build-image
|
|
parent: opendev-build-docker-image
|
|
description: Build Docker images.
|
|
allowed-projects: zuul/zuul
|
|
timeout: 2700 # 45 minutes
|
|
requires:
|
|
- python-builder-3.11-bullseye-container-image
|
|
- python-base-3.11-bullseye-container-image
|
|
provides: zuul-container-image
|
|
vars: &zuul_image_vars
|
|
docker_images:
|
|
- context: .
|
|
repository: zuul/zuul
|
|
target: zuul
|
|
tags:
|
|
# If zuul.tag is defined: [ '3', '3.19', '3.19.0' ]. Only works for 3-component tags.
|
|
# Otherwise: ['latest']
|
|
&imagetag "{{ zuul.tag is defined | ternary([zuul.get('tag', '').split('.')[0], '.'.join(zuul.get('tag', '').split('.')[:2]), zuul.get('tag', '')], ['latest']) }}"
|
|
- context: .
|
|
repository: zuul/zuul-executor
|
|
target: zuul-executor
|
|
tags: *imagetag
|
|
- context: .
|
|
repository: zuul/zuul-fingergw
|
|
target: zuul-fingergw
|
|
tags: *imagetag
|
|
- context: .
|
|
repository: zuul/zuul-merger
|
|
target: zuul-merger
|
|
tags: *imagetag
|
|
- context: .
|
|
repository: zuul/zuul-scheduler
|
|
target: zuul-scheduler
|
|
tags: *imagetag
|
|
- context: .
|
|
repository: zuul/zuul-web
|
|
target: zuul-web
|
|
tags: *imagetag
|
|
|
|
- job:
|
|
name: zuul-upload-image
|
|
parent: opendev-upload-docker-image
|
|
description: Build Docker images and upload to Docker Hub.
|
|
allowed-projects: zuul/zuul
|
|
requires:
|
|
- python-builder-3.11-bullseye-container-image
|
|
- python-base-3.11-bullseye-container-image
|
|
provides: zuul-container-image
|
|
secrets:
|
|
name: docker_credentials
|
|
secret: zuul-dockerhub
|
|
pass-to-parent: true
|
|
vars: *zuul_image_vars
|
|
|
|
- job:
|
|
name: zuul-promote-image
|
|
parent: opendev-promote-docker-image
|
|
description: Promote previously uploaded Docker images.
|
|
allowed-projects: zuul/zuul
|
|
secrets:
|
|
name: docker_credentials
|
|
secret: zuul-dockerhub
|
|
pass-to-parent: true
|
|
nodeset:
|
|
nodes: []
|
|
vars: *zuul_image_vars
|
|
|
|
- job:
|
|
name: zuul-build-python-release
|
|
parent: build-python-release
|
|
pre-run: playbooks/release/pre.yaml
|
|
nodeset: ubuntu-jammy
|
|
|
|
- job:
|
|
name: zuul-release-python
|
|
parent: opendev-release-python
|
|
pre-run: playbooks/release/pre.yaml
|
|
nodeset: ubuntu-jammy
|
|
|
|
- project:
|
|
queue: zuul
|
|
vars:
|
|
node_version: 16
|
|
release_python: python3
|
|
check:
|
|
jobs:
|
|
- zuul-build-image
|
|
- zuul-tox-docs
|
|
- tox-linters:
|
|
vars:
|
|
tox_install_bindep: false
|
|
nodeset: ubuntu-jammy
|
|
- zuul-tox-py38
|
|
- zuul-tox-py311
|
|
- zuul-tox-py311-multi-scheduler
|
|
- zuul-build-dashboard-openstack-whitelabel
|
|
- zuul-build-dashboard-software-factory
|
|
- zuul-build-dashboard-opendev
|
|
- nodejs-run-lint:
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
|
|
nodeset: ubuntu-jammy
|
|
- nodejs-run-test:
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
|
|
files:
|
|
- web/.*
|
|
nodeset: ubuntu-jammy
|
|
- zuul-stream-functional-6
|
|
- zuul-tox-remote
|
|
- zuul-quick-start:
|
|
requires: nodepool-container-image
|
|
dependencies: zuul-build-image
|
|
- zuul-tox-zuul-client
|
|
- zuul-build-python-release
|
|
gate:
|
|
jobs:
|
|
- zuul-upload-image
|
|
- zuul-tox-docs
|
|
- tox-linters:
|
|
vars:
|
|
tox_install_bindep: false
|
|
nodeset: ubuntu-jammy
|
|
- zuul-tox-py38
|
|
- zuul-tox-py311
|
|
- zuul-build-dashboard
|
|
- nodejs-run-lint:
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
|
|
nodeset: ubuntu-jammy
|
|
- nodejs-run-test:
|
|
vars:
|
|
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
|
|
files:
|
|
- web/.*
|
|
nodeset: ubuntu-jammy
|
|
- zuul-stream-functional-6
|
|
- zuul-tox-remote
|
|
- zuul-quick-start:
|
|
requires: nodepool-container-image
|
|
dependencies: zuul-upload-image
|
|
- zuul-tox-zuul-client
|
|
- zuul-build-python-release
|
|
promote:
|
|
jobs:
|
|
- zuul-promote-image
|
|
- zuul-promote-docs
|
|
- opendev-promote-python:
|
|
vars:
|
|
download_artifact_job: zuul-build-python-release
|
|
- opendev-promote-javascript-deployment-tarball:
|
|
files: *zuul_build_dashboard_files
|
|
vars:
|
|
download_artifact_job: zuul-build-dashboard
|
|
release:
|
|
jobs:
|
|
- zuul-release-python
|
|
- zuul-publish-tox-docs
|
|
- upload-docker-image:
|
|
secrets:
|
|
name: docker_credentials
|
|
secret: zuul-dockerhub
|
|
pass-to-parent: true
|
|
vars:
|
|
<<: *zuul_image_vars
|
|
upload_docker_image_promote: false
|