Clark Boylan 254bb0f488 Add framework for selenium tests on test slaves.
Fixes bug #996190

Add framework to run selenium tests on the test slaves. This includes
installing the firefox and Xvfb packages, wrapping Horizon selenium
tests with a script that creates an Xvfb X server, and running the
Horizon selenium tests as check tests. The framework assumes selenium
tests will use the WebDriver API and not need any other pieces of
selenium (No selenium server etc).

Change-Id: I4f4cc502276890d617b5baaadf5f8a6eae1ba1ff
2012-07-24 10:08:11 -07:00

526 lines
13 KiB
YAML

includes:
- python-file: openstack_functions.py
queues:
- name: check
manager: IndependentQueueManager
trigger:
- event: patchset-created
- event: comment-added
comment_filter: (?i)^\s*recheck\.?\s*$
success:
verified: 1
failure:
verified: -1
- name: gate
manager: DependentQueueManager
trigger:
- event: comment-added
approval:
- approved: 1
- event: comment-added
comment_filter: (?i)^\s*reverify\.?\s*$
start:
verified: 0
success:
verified: 2
submit: true
failure:
verified: -2
- name: post
manager: IndependentQueueManager
trigger:
- event: ref-updated
ref: ^(?!refs/).*$
- name: publish
manager: IndependentQueueManager
trigger:
- event: ref-updated
ref: ^refs/tags/.*$
- name: silent
manager: IndependentQueueManager
trigger:
- event: patchset-created
jobs:
- name: ^.*-merge$
failure-message: This change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.
hold-following-changes: true
- name: gate-tempest-devstack-vm
parameter-function: devstack_params
projects:
- name: openstack-ci/zuul
check:
- gate-zuul-merge:
- gate-zuul-pep8
- gate-zuul-pyflakes
gate:
- gate-zuul-merge:
- gate-zuul-pep8
- gate-zuul-pyflakes
- name: openstack-ci/pypi-mirror
check:
- gate-pypi-mirror-merge:
- gate-pypi-mirror-pyflakes
gate:
- gate-pypi-mirror-merge:
- gate-pypi-mirror-pyflakes
- name: openstack-ci/gerrit
check:
- gate-gerrit-merge:
- check-gerrit-unittests
gate:
- gate-gerrit-merge:
- gate-gerrit-unittests
post:
- gerrit-package
- name: openstack-ci/gerritbot
check:
- gate-gerritbot-merge:
- gate-gerritbot-pep8
- gate-gerritbot-pyflakes
gate:
- gate-gerritbot-merge:
- gate-gerritbot-pep8
- gate-gerritbot-pyflakes
- name: openstack-ci/gerritlib
check:
- gate-gerritlib-merge:
- gate-gerritlib-pep8
- gate-gerritlib-pyflakes
gate:
- gate-gerritlib-merge:
- gate-gerritlib-pep8
- gate-gerritlib-pyflakes
publish:
- gerritlib-pypi
- name: openstack-ci/gerrit-verification-status-plugin
check:
- gate-gerrit-verification-status-plugin-merge
gate:
- gate-gerrit-verification-status-plugin-merge
- name: openstack/openstack-ci-puppet
check:
- gate-ci-puppet-merge:
- gate-ci-puppet-syntax
gate:
- gate-ci-puppet-merge:
- gate-ci-puppet-syntax
- name: openstack/cinder
check:
- gate-cinder-merge:
- gate-cinder-docs
- gate-cinder-pep8
- gate-cinder-python26
- gate-cinder-python27
gate:
- gate-cinder-merge:
- gate-cinder-docs
- gate-cinder-pep8
- gate-cinder-python26
- gate-cinder-python27
post:
- cinder-tarball
- cinder-coverage
- cinder-docs
publish:
- cinder-tarball
- cinder-docs
- name: openstack/glance
check:
- gate-glance-merge:
- gate-glance-pep8
- gate-glance-python26
- gate-glance-python27
- gate-tempest-devstack-vm
gate:
- gate-glance-merge:
- gate-glance-pep8
- gate-glance-python26
- gate-glance-python27
- gate-tempest-devstack-vm
post:
- glance-tarball
- glance-coverage
- glance-docs
publish:
- glance-tarball
- glance-docs
- name: openstack/horizon
check:
- gate-horizon-merge:
- gate-horizon-docs
- gate-horizon-pep8
- gate-horizon-python26
- gate-horizon-python27
- gate-horizon-selenium
- gate-tempest-devstack-vm
gate:
- gate-horizon-merge:
- gate-horizon-docs
- gate-horizon-pep8
- gate-horizon-python26
- gate-horizon-python27
- gate-tempest-devstack-vm
post:
- horizon-tarball
- horizon-coverage
- horizon-docs
publish:
- horizon-tarball
- horizon-docs
- name: openstack/keystone
check:
- gate-keystone-merge:
- gate-keystone-docs
- gate-keystone-pep8
- gate-keystone-python26
- gate-keystone-python27
- gate-tempest-devstack-vm
gate:
- gate-keystone-merge:
- gate-keystone-docs
- gate-keystone-pep8
- gate-keystone-python26
- gate-keystone-python27
- gate-tempest-devstack-vm
post:
- keystone-tarball
- keystone-coverage
- keystone-docs
- name: openstack/nova
check:
- gate-nova-merge:
- gate-nova-docs
- gate-nova-pep8
- gate-nova-python26
- gate-nova-python27
- gate-tempest-devstack-vm
gate:
- gate-nova-merge:
- gate-nova-docs
- gate-nova-pep8
- gate-nova-python26
- gate-nova-python27
- gate-tempest-devstack-vm
post:
- nova-tarball
- nova-coverage
- nova-docs
publish:
- nova-tarball
- nova-docs
- name: openstack/openstack-common
check:
- gate-openstack-common-merge:
- gate-openstack-common-pep8
- gate-openstack-common-python26
- gate-openstack-common-python27
gate:
- gate-openstack-common-merge:
- gate-openstack-common-pep8
- gate-openstack-common-python26
- gate-openstack-common-python27
- name: openstack/quantum
check:
- gate-quantum-merge:
- gate-quantum-docs
- gate-quantum-pep8
- gate-quantum-python26
- gate-quantum-python27
gate:
- gate-quantum-merge:
- gate-quantum-docs
- gate-quantum-pep8
- gate-quantum-python26
- gate-quantum-python27
post:
- quantum-tarball
- quantum-coverage
- quantum-docs
publish:
- quantum-tarball
- quantum-docs
- name: openstack/swift
check:
- gate-swift-merge:
- gate-swift-docs
- gate-swift-pep8
- gate-swift-python26
- gate-swift-python27
gate:
- gate-swift-merge:
- gate-swift-docs
- gate-swift-pep8
- gate-swift-python26
- gate-swift-python27
post:
- swift-tarball
- swift-coverage
- swift-docs
publish:
- swift-tarball
- swift-docs
- name: openstack/python-cinderclient
check:
- gate-python-cinderclient-merge:
- gate-python-cinderclient-docs
- gate-python-cinderclient-pep8
- gate-python-cinderclient-python26
- gate-python-cinderclient-python27
gate:
- gate-python-cinderclient-merge:
- gate-python-cinderclient-docs
- gate-python-cinderclient-pep8
- gate-python-cinderclient-python26
- gate-python-cinderclient-python27
post:
- python-cinderclient-tarball
- python-cinderclient-coverage
- python-cinderclient-docs
publish:
- python-cinderclient-pypi
- python-cinderclient-docs
- name: openstack/python-glanceclient
check:
- gate-python-glanceclient-merge:
- gate-python-glanceclient-docs
- gate-python-glanceclient-pep8
- gate-python-glanceclient-python26
- gate-python-glanceclient-python27
- gate-tempest-devstack-vm
gate:
- gate-python-glanceclient-merge:
- gate-python-glanceclient-docs
- gate-python-glanceclient-pep8
- gate-python-glanceclient-python26
- gate-python-glanceclient-python27
- gate-tempest-devstack-vm
post:
- python-glanceclient-tarball
- python-glanceclient-coverage
- python-glanceclient-docs
publish:
- python-glanceclient-pypi
- python-glanceclient-docs
- name: openstack/python-keystoneclient
check:
- gate-python-keystoneclient-merge:
- gate-python-keystoneclient-docs
- gate-python-keystoneclient-pep8
- gate-python-keystoneclient-python26
- gate-python-keystoneclient-python27
- gate-tempest-devstack-vm
gate:
- gate-python-keystoneclient-merge:
- gate-python-keystoneclient-docs
- gate-python-keystoneclient-pep8
- gate-python-keystoneclient-python26
- gate-python-keystoneclient-python27
- gate-tempest-devstack-vm
post:
- python-keystoneclient-tarball
- python-keystoneclient-coverage
- python-keystoneclient-docs
publish:
- python-keystoneclient-pypi
- python-keystoneclient-docs
- name: openstack/python-novaclient
check:
- gate-python-novaclient-merge:
- gate-python-novaclient-docs
- gate-python-novaclient-pep8
- gate-python-novaclient-python26
- gate-python-novaclient-python27
- gate-tempest-devstack-vm
gate:
- gate-python-novaclient-merge:
- gate-python-novaclient-docs
- gate-python-novaclient-pep8
- gate-python-novaclient-python26
- gate-python-novaclient-python27
- gate-tempest-devstack-vm
post:
- python-novaclient-tarball
- python-novaclient-coverage
- python-novaclient-docs
publish:
- python-novaclient-pypi
- python-novaclient-docs
- name: openstack/python-openstackclient
check:
- gate-python-openstackclient-merge:
- gate-python-openstackclient-docs
- gate-python-openstackclient-pep8
- gate-python-openstackclient-python26
- gate-python-openstackclient-python27
gate:
- gate-python-openstackclient-merge:
- gate-python-openstackclient-docs
- gate-python-openstackclient-pep8
- gate-python-openstackclient-python26
- gate-python-openstackclient-python27
post:
- python-openstackclient-tarball
- python-openstackclient-coverage
- python-openstackclient-docs
publish:
- python-openstackclient-pypi
- python-openstackclient-docs
- name: openstack/python-quantumclient
check:
- gate-python-quantumclient-merge:
- gate-python-quantumclient-docs
- gate-python-quantumclient-pep8
- gate-python-quantumclient-python26
- gate-python-quantumclient-python27
- gate-tempest-devstack-vm
gate:
- gate-python-quantumclient-merge:
- gate-python-quantumclient-docs
- gate-python-quantumclient-pep8
- gate-python-quantumclient-python26
- gate-python-quantumclient-python27
- gate-tempest-devstack-vm
post:
- python-quantumclient-tarball
- python-quantumclient-coverage
- python-quantumclient-docs
publish:
- python-quantumclient-pypi
- python-quantumclient-docs
- name: openstack/python-swiftclient
check:
- gate-python-swiftclient-merge:
- gate-python-swiftclient-docs
- gate-python-swiftclient-pep8
- gate-python-swiftclient-python26
- gate-python-swiftclient-python27
gate:
- gate-python-swiftclient-merge:
- gate-python-swiftclient-docs
- gate-python-swiftclient-pep8
- gate-python-swiftclient-python26
- gate-python-swiftclient-python27
post:
- python-swiftclient-tarball
- python-swiftclient-coverage
- python-swiftclient-docs
publish:
- python-swiftclient-pypi
- python-swiftclient-docs
- name: openstack-dev/devstack
check:
- gate-devstack-merge:
- gate-tempest-devstack-vm
gate:
- gate-devstack-merge:
- gate-tempest-devstack-vm
- name: openstack-ci/devstack-gate
check:
- gate-devstack-gate-merge:
- gate-tempest-devstack-vm
gate:
- gate-devstack-gate-merge:
- gate-tempest-devstack-vm
- name: openstack-dev/pbr
check:
- gate-pbr-merge:
- gate-pbr-docs
- gate-pbr-pep8
- gate-pbr-python26
- gate-pbr-python27
gate:
- gate-pbr-merge:
- gate-pbr-docs
- gate-pbr-pep8
- gate-pbr-python26
- gate-pbr-python27
post:
- pbr-tarball
- pbr-coverage
- pbr-docs
publish:
- pbr-pypi
- pbr-docs
- name: openstack/tempest
check:
- gate-tempest-merge:
- gate-tempest-pep8
- gate-tempest-devstack-vm
gate:
- gate-tempest-merge:
- gate-tempest-pep8
- gate-tempest-devstack-vm
- name: stackforge/ceilometer
check:
- gate-ceilometer-merge:
- gate-ceilometer-pep8
- gate-ceilometer-python26
- gate-ceilometer-python27
- gate-ceilometer-python26-essex
- gate-ceilometer-python27-essex
gate:
- gate-ceilometer-merge:
- gate-ceilometer-pep8
- gate-ceilometer-python26
- gate-ceilometer-python27
- name: heat-api/heat
check:
- gate-heat-merge:
- gate-heat-pep8
- gate-heat-python26
- gate-heat-python27
gate:
- gate-heat-merge:
- gate-heat-pep8
- gate-heat-python26
- gate-heat-python27
- name: stackforge/reddwarf
check:
- gate-reddwarf-merge:
- gate-reddwarf-pep8
- gate-reddwarf-python26
- gate-reddwarf-python27
gate:
- gate-reddwarf-merge:
- gate-reddwarf-pep8
- gate-reddwarf-python26
- gate-reddwarf-python27