Files
zuul/.zuul.yaml
T
Tobias Henkel 9cb2e52c59 Use npm mirrors in tox jobs
Opendev runs a caching mirror for npm packages. Use it when running
yarn install during tox tests. Due to the way yarn.lock files work at
the moment we need to patch the lockfile on the fly to inject the
mirror urls [1]. This can be handlel inside the pip.sh where we patch
the lockfile, run yarn and reset it afterwards.

[1] https://github.com/yarnpkg/yarn/issues/2566

Change-Id: Id1f2daac8327f3110e6beeb2d6391baccfd3ce34
2020-07-28 22:21:17 +02:00

340 lines
11 KiB
YAML

- nodeset:
name: zuul-functional-temp-master
nodes:
- name: controller
label: ubuntu-xenial
- name: node1
label: ubuntu-xenial
- name: node2
label: ubuntu-xenial
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
- playbooks/zuul-stream/post-ara.yaml
files:
- zuul/ansible/.*
- zuul/lib/ansible*
- playbooks/zuul-stream/.*
- job:
name: zuul-stream-functional-2.7
parent: zuul-stream-functional
# Force executor to use same Ansible version as "controller" node so
# that the inventory.yaml file will be correct for that version.
ansible-version: 2.7
vars:
zuul_ansible_version: 2.7
- job:
name: zuul-stream-functional-2.8
parent: zuul-stream-functional
# Force executor to use same Ansible version as "controller" node so
# that the inventory.yaml file will be correct for that version.
ansible-version: 2.8
vars:
zuul_ansible_version: 2.8
- job:
name: zuul-stream-functional-2.9
parent: zuul-stream-functional
success-url: 'http://zuul.opendev.org/t/zuul/build/{build.uuid}'
failure-url: 'http://zuul.opendev.org/t/zuul/build/{build.uuid}'
vars:
zuul_ansible_version: 2.9
- job:
name: zuul-tox-remote
parent: tox
vars:
tox_envlist: remote
tox_environment:
ZUUL_SSH_KEY: /home/zuul/.ssh/id_rsa
ZUUL_REMOTE_IPV4: "{{ nodepool.interface_ip }}"
ZUUL_REMOTE_KEEP: "true"
- job:
name: zuul-build-dashboard
parent: build-javascript-deployment
description: |
Builds the zuul dashboard without an overridden API URL.
success-url: 'npm/html/'
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
- 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 quick-start documentation.
pre-run: playbooks/quick-start/pre.yaml
run: playbooks/quick-start/run.yaml
post-run: playbooks/quick-start/post.yaml
required-projects:
- zuul/zuul
# 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.7-container-image
- python-base-3.7-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.7-container-image
- python-base-3.7-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
- job:
name: zuul-release-python
parent: opendev-release-python
pre-run: playbooks/release/pre.yaml
- project:
vars:
node_version: 14
release_python: python3
check:
jobs:
- zuul-build-image
- zuul-tox-docs
- tox-linters:
vars:
tox_install_bindep: false
- tox-py35:
irrelevant-files:
- zuul/cmd/migrate.py
- playbooks/zuul-migrate/.*
nodeset: ubuntu-xenial
timeout: 4800 # 80 minutes
vars: &zuul_tox_vars
test_setup_environment:
ZUUL_TEST_ROOT: /tmp/zuul-test
YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
tox_environment:
ZUUL_TEST_ROOT: /tmp/zuul-test
YARN_REGISTRY: "https://{{ zuul_site_mirror_fqdn }}:4443/registry.npmjs"
- tox-py38:
irrelevant-files:
- zuul/cmd/migrate.py
- playbooks/zuul-migrate/.*
timeout: 4800 # 80 minutes
nodeset: ubuntu-bionic
vars: *zuul_tox_vars
- 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"
- nodejs-run-test:
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
success-url: 'npm/reports/bundle.html'
files:
- web/.*
- zuul-stream-functional-2.7
- zuul-stream-functional-2.8
- zuul-stream-functional-2.9
- zuul-tox-remote:
timeout: 2700 # 45 minutes
- zuul-quick-start:
requires: nodepool-container-image
dependencies: zuul-build-image
- nodepool-zuul-functional:
voting: false
- zuul-build-python-release
gate:
jobs:
- zuul-upload-image
- zuul-tox-docs
- tox-linters:
vars:
tox_install_bindep: false
- tox-py35:
irrelevant-files:
- zuul/cmd/migrate.py
- playbooks/zuul-migrate/.*
nodeset: ubuntu-xenial
timeout: 4800 # 80 minutes
vars: *zuul_tox_vars
- tox-py38:
irrelevant-files:
- zuul/cmd/migrate.py
- playbooks/zuul-migrate/.*
timeout: 4800 # 80 minutes
nodeset: ubuntu-bionic
vars: *zuul_tox_vars
- zuul-build-dashboard
- nodejs-run-lint:
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
- nodejs-run-test:
vars:
zuul_work_dir: "{{ zuul.project.src_dir }}/web"
success-url: 'npm/reports/bundle.html'
files:
- web/.*
- zuul-stream-functional-2.7
- zuul-stream-functional-2.8
- zuul-stream-functional-2.9
- zuul-tox-remote:
timeout: 2700 # 45 minutes
- zuul-quick-start:
requires: nodepool-container-image
dependencies: zuul-upload-image
- 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:
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