summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClark Boylan <clark.boylan@gmail.com>2020-08-06 08:33:40 -0700
committerClark Boylan <clark.boylan@gmail.com>2020-08-06 10:41:27 -0700
commit9e229269b208671af5f4f3431b3f077dda5453c5 (patch)
tree9de4352804ce86bb81c1bc4e14fc95c9fecd3506
parent3f896a8d846de0682e2bfa5a8b45fc235620c7d5 (diff)
downloadpbr-9e229269b208671af5f4f3431b3f077dda5453c5.tar.gz
Begin work to modernize pbr's integration testing
PBR does integration testing by installing all of openstack's python projects to ensure we can install all of them in a variety of different ways with different pip versions. Unfortunately, these jobs are still using devstack-gate. We can simplify them significantly because zuul is now doing what devstack-gate does and provides repos configured the way we want them to be. This change updates the jobs to drop devstack-gate and simply consume zuul's repo prep. A follow up will remove the old legacy jobs as they need to be removed from project-config first. Needed-By: https://review.opendev.org/745189 Change-Id: I77a38c4611dc28db79d6f25d96ad0de36b224c98
-rw-r--r--.zuul.yaml119
-rw-r--r--playbooks/pbr-installation-openstack/pre.yaml4
-rw-r--r--playbooks/pbr-installation-openstack/run.yaml6
-rw-r--r--tools/integration.sh8
4 files changed, 129 insertions, 8 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index c396142..36c22ae 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -101,6 +101,113 @@
run: playbooks/legacy/pbr-installation-upstream-devstack/run.yaml
post-run: playbooks/legacy/pbr-installation-upstream-devstack/post.yaml
+- job:
+ name: pbr-installation-openstack-base
+ timeout: 5400
+ description: |
+ Base job for pbr jobs that install openstack packages with current
+ pbr. This ensures we don't break our ability to install openstack.
+ required-projects:
+ # TODO update this list with current active python projects
+ - openstack/pbr
+ - openstack/tripleo-ci
+ - openstack/aodh
+ - openstack/automaton
+ - openstack/ceilometer
+ - openstack/ceilometermiddleware
+ - openstack/cinder
+ - openstack/cliff
+ - openstack/debtcollector
+ - openstack/dib-utils
+ - openstack/diskimage-builder
+ - openstack/django_openstack_auth
+ - openstack/futurist
+ - openstack/glance
+ - openstack/glance_store
+ - openstack/heat
+ - openstack/heat-cfntools
+ - openstack/heat-templates
+ - openstack/horizon
+ - openstack/ironic
+ - openstack/ironic-lib
+ - openstack/ironic-python-agent
+ - openstack/keystone
+ - openstack/keystoneauth
+ - openstack/keystonemiddleware
+ - openstack/manila
+ - openstack/manila-ui
+ - openstack/neutron
+ - openstack/neutron-vpnaas
+ - openstack/nova
+ - openstack/octavia
+ - openstack/os-apply-config
+ - openstack/os-brick
+ - openstack/os-client-config
+ - openstack/os-collect-config
+ - openstack/os-net-config
+ - openstack/os-refresh-config
+ - openstack/osc-lib
+ - openstack/oslo.cache
+ - openstack/oslo.concurrency
+ - openstack/oslo.config
+ - openstack/oslo.context
+ - openstack/oslo.db
+ - openstack/oslo.i18n
+ - openstack/oslo.log
+ - openstack/oslo.messaging
+ - openstack/oslo.middleware
+ - openstack/oslo.policy
+ - openstack/oslo.reports
+ - openstack/oslo.rootwrap
+ - openstack/oslo.serialization
+ - openstack/oslo.service
+ - openstack/oslo.utils
+ - openstack/oslo.versionedobjects
+ - openstack/oslo.vmware
+ - openstack/pycadf
+ - openstack/python-cinderclient
+ - openstack/python-glanceclient
+ - openstack/python-heatclient
+ - openstack/python-ironicclient
+ - openstack/python-keystoneclient
+ - openstack/python-manilaclient
+ - openstack/python-neutronclient
+ - openstack/python-novaclient
+ - openstack/python-openstackclient
+ - openstack/python-saharaclient
+ - openstack/python-swiftclient
+ - openstack/python-troveclient
+ - openstack/python-zaqarclient
+ - openstack/requirements
+ - openstack/sahara
+ - openstack/sahara-dashboard
+ - openstack/stevedore
+ - openstack/swift
+ - openstack/taskflow
+ - openstack/tempest
+ - openstack/tooz
+ - openstack/tripleo-heat-templates
+ - openstack/tripleo-image-elements
+ - openstack/trove
+ - openstack/trove-dashboard
+ - openstack/zaqar
+
+- job:
+ name: pbr-installation-openstack
+ parent: pbr-installation-openstack-base
+ pre-run: playbooks/pbr-installation-openstack/pre.yaml
+ run: playbooks/pbr-installation-openstack/run.yaml
+ vars:
+ pbr_pip_version: ''
+
+- job:
+ name: pbr-installation-openstack-pip-dev
+ description: |
+ This job runs the pbr installations with pip trunk.
+ parent: pbr-installation-openstack
+ vars:
+ pbr_pip_version: 'git+https://github.com/pypa/pip.git#egg=pip'
+
- project:
templates:
- lib-forward-testing
@@ -113,9 +220,13 @@
- publish-openstack-docs-pti
check:
jobs:
- - pbr-installation-devstack
- - pbr-installation-upstream-devstack
+ - pbr-installation-openstack
+ - pbr-installation-openstack-pip-dev
gate:
jobs:
- - pbr-installation-devstack
- - pbr-installation-upstream-devstack
+ - pbr-installation-openstack
+ - pbr-installation-openstack-pip-dev
+ periodic:
+ jobs:
+ - pbr-installation-openstack
+ - pbr-installation-openstack-pip-dev
diff --git a/playbooks/pbr-installation-openstack/pre.yaml b/playbooks/pbr-installation-openstack/pre.yaml
new file mode 100644
index 0000000..4737f6a
--- /dev/null
+++ b/playbooks/pbr-installation-openstack/pre.yaml
@@ -0,0 +1,4 @@
+- hosts: all
+ roles:
+ - ensure-pip
+ - ensure-virtualenv
diff --git a/playbooks/pbr-installation-openstack/run.yaml b/playbooks/pbr-installation-openstack/run.yaml
new file mode 100644
index 0000000..adf7665
--- /dev/null
+++ b/playbooks/pbr-installation-openstack/run.yaml
@@ -0,0 +1,6 @@
+- hosts: all
+ tasks:
+ - shell:
+ cmd: |
+ export PBR_PIP_VERSION="{{ pbr_pip_version }}"
+ bash -xe /home/zuul/src/opendev.org/openstack/pbr/tools/integration.sh $(cat /home/zuul/src/opendev.org/openstack/requirements/projects.txt)
diff --git a/tools/integration.sh b/tools/integration.sh
index ff337ef..e001e32 100644
--- a/tools/integration.sh
+++ b/tools/integration.sh
@@ -13,7 +13,7 @@ function mkvenv {
venv=$1
rm -rf $venv
- virtualenv $venv
+ virtualenv -p python3 $venv
$venv/bin/pip install $PIPFLAGS -U $PIPVERSION wheel requests
# If a change to PBR is being tested, preinstall the wheel for it
@@ -22,11 +22,11 @@ function mkvenv {
fi
}
-# BASE should be a directory with a subdir called "new" and in that
+# BASE should be a directory with a subdir called "openstack" and in that
# dir, there should be a git repository for every entry in PROJECTS
-BASE=${BASE:-/opt/stack}
+BASE=${BASE:-/home/zuul/src/opendev.org/}
-REPODIR=${REPODIR:-$BASE/new}
+REPODIR=${REPODIR:-$BASE/openstack}
# TODO: Figure out how to get this on to the box properly
sudo apt-get update