From a207facd231016d920cd5171f9e42f1e248bbb8a Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 16 Nov 2013 06:16:23 -0500 Subject: [PATCH] Create and upload wheels We want to make wheels for pre-release and release events. We will only build wheels on python 2.7. If the project supports python 3 as well, the project will have marked itself as supporting universal wheels. If it does that, python 2.7 will build a wheel that can be used in both places. If it does not support python 3, then we don't have to build on on python 3. Change-Id: I060b59d8adc586ff37065fa4f6172a592ee3f903 --- .../slave_scripts/pypi-extract-universal.py | 28 + .../slave_scripts/pypi-tarball-upload.sh} | 0 .../files/slave_scripts/pypi-wheel-upload.sh | 38 + .../jenkins/files/slave_scripts/run-wheel.sh | 38 + .../jenkins_job_builder/config/macros.yaml | 16 +- .../jenkins_job_builder/config/pypi-jobs.yaml | 22 +- .../config/python-jobs.yaml | 3 + .../openstack_project/files/zuul/layout.yaml | 775 ++++-------------- 8 files changed, 292 insertions(+), 628 deletions(-) create mode 100644 modules/jenkins/files/slave_scripts/pypi-extract-universal.py rename modules/{openstack_project/files/slave_scripts/pypi-upload.sh => jenkins/files/slave_scripts/pypi-tarball-upload.sh} (100%) create mode 100755 modules/jenkins/files/slave_scripts/pypi-wheel-upload.sh create mode 100644 modules/jenkins/files/slave_scripts/run-wheel.sh diff --git a/modules/jenkins/files/slave_scripts/pypi-extract-universal.py b/modules/jenkins/files/slave_scripts/pypi-extract-universal.py new file mode 100644 index 0000000000..7101c2edb5 --- /dev/null +++ b/modules/jenkins/files/slave_scripts/pypi-extract-universal.py @@ -0,0 +1,28 @@ +#!/usr/bin/python +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Extract Python package name from setup.cfg + +import ConfigParser + +universal = False + +setup_cfg = ConfigParser.SafeConfigParser() +setup_cfg.read("setup.cfg") +if setup_cfg.has_section("wheel"): + universal = setup_cfg.getboolean("wheel", "universal") +if universal: + print("py2.py3") +else: + print("py27") diff --git a/modules/openstack_project/files/slave_scripts/pypi-upload.sh b/modules/jenkins/files/slave_scripts/pypi-tarball-upload.sh similarity index 100% rename from modules/openstack_project/files/slave_scripts/pypi-upload.sh rename to modules/jenkins/files/slave_scripts/pypi-tarball-upload.sh diff --git a/modules/jenkins/files/slave_scripts/pypi-wheel-upload.sh b/modules/jenkins/files/slave_scripts/pypi-wheel-upload.sh new file mode 100755 index 0000000000..7b235a94da --- /dev/null +++ b/modules/jenkins/files/slave_scripts/pypi-wheel-upload.sh @@ -0,0 +1,38 @@ +#!/bin/bash -xe +# +# Copyright 2012 Hewlett-Packard Development Company, L.P. +# Copyright 2013 OpenStack Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Retrieve supported python wheels and upload them to pypi with Curl. + +PROJECT=$1 +TARBALL_SITE=$2 +TAG=`echo $ZUUL_REF | sed 's/^refs.tags.//'` + +# Look in the setup.cfg to determine if a package name is specified, but +# fall back on the project name if necessary +DISTNAME=`/usr/local/jenkins/slave_scripts/pypi-extract-name.py \ + || echo $PROJECT` +# Look in the setup.cfg to see if this is a universal wheel or not +WHEELTYPE=`/usr/local/jenkins/slave_scripts/pypi-extract-universal.py` +FILENAME="$DISTNAME-$TAG.$WHEELTYPE-none-any.whl" + +rm -rf *.whl +curl --fail -o $FILENAME http://$TARBALL_SITE/$PROJECT/$FILENAME + +# Make sure we actually got a wheel +file -b $FILENAME | grep -i zip + +twine upload -r pypi $FILENAME diff --git a/modules/jenkins/files/slave_scripts/run-wheel.sh b/modules/jenkins/files/slave_scripts/run-wheel.sh new file mode 100644 index 0000000000..8286930c1b --- /dev/null +++ b/modules/jenkins/files/slave_scripts/run-wheel.sh @@ -0,0 +1,38 @@ +#!/bin/bash -xe + +# Copyright 2013 OpenStack Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +org=$1 +project=$2 + +if [[ -z "$org" || -z "$project" ]] +then + echo "Usage: $0 ORG PROJECT" + echo + echo "ORG: The project organization (eg 'openstack')" + echo "PROJECT: The project name (eg 'nova')" + exit 1 +fi + +source /usr/local/jenkins/slave_scripts/select-mirror.sh $org $project + +rm -f dist/*.tar.gz +tox -evenv pip install wheel +tox -evenv python setup.py bdist_wheel + +echo "SHA1sum: " +sha1sum dist/* +echo "MD5sum: " +md5sum dist/* diff --git a/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml b/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml index d97f282532..774ac9e33a 100644 --- a/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml +++ b/modules/openstack_project/files/jenkins_job_builder/config/macros.yaml @@ -209,7 +209,10 @@ - builder: name: tarball builders: - - shell: "/usr/local/jenkins/slave_scripts/run-tarball.sh {github-org} {project}" + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/run-tarball.sh {github-org} {project} + /usr/local/jenkins/slave_scripts/run-wheel.sh {github-org} {project} - builder: name: devstack-checkout @@ -306,6 +309,17 @@ - target: 'tarballs/{project}/' source: 'dist/*.tar.gz' +- publisher: + name: wheel + publishers: + - archive: + artifacts: 'dist/*.whl' + - scp: + site: '{site}' + files: + - target: 'tarballs/{project}/' + source: 'dist/*.whl' + - publisher: name: war publishers: diff --git a/modules/openstack_project/files/jenkins_job_builder/config/pypi-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/pypi-jobs.yaml index f247f356ec..3e411b68ae 100644 --- a/modules/openstack_project/files/jenkins_job_builder/config/pypi-jobs.yaml +++ b/modules/openstack_project/files/jenkins_job_builder/config/pypi-jobs.yaml @@ -1,12 +1,27 @@ - job-template: - name: '{name}-pypi-upload' + name: '{name}-pypi-both-upload' node: pypi builders: - revoke-sudo - gerrit-git-prep - shell: | - /usr/local/jenkins/slave_scripts/pypi-upload.sh {name} {tarball-site} + /usr/local/jenkins/slave_scripts/pypi-tarball-upload.sh {name} {tarball-site} + /usr/local/jenkins/slave_scripts/pypi-wheel-upload.sh {name} {tarball-site} + + publishers: + - console-log + + +- job-template: + name: '{name}-pypi-wheel-upload' + node: pypi + + builders: + - revoke-sudo + - gerrit-git-prep + - shell: | + /usr/local/jenkins/slave_scripts/pypi-wheel-upload.sh {name} {tarball-site} publishers: - console-log @@ -15,4 +30,5 @@ - job-group: name: pypi-jobs jobs: - - '{name}-pypi-upload' + - '{name}-pypi-both-upload' + - '{name}-pypi-wheel-upload' diff --git a/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml index dcec567030..e552167e7a 100644 --- a/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml +++ b/modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml @@ -200,6 +200,9 @@ - tarball: project: '{name}' site: '{tarball-site}' + - wheel: + project: '{name}' + site: '{tarball-site}' - console-log diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml index 9b918406a3..b6687bf95f 100644 --- a/modules/openstack_project/files/zuul/layout.yaml +++ b/modules/openstack_project/files/zuul/layout.yaml @@ -355,6 +355,36 @@ project-templates: post: - '{name}-infra-docs' + # Publish pre-releases as wheels and official releases as sdist and + # wheels, then sync to all of the appropriate mirrors. + - name: publish-to-pypi + pre-release: + - '{name}-tarball': + - '{name}-pypi-wheel-upload': + - post-mirror-python26 + - post-mirror-python27 + - post-mirror-python33 + release: + - '{name}-tarball': + - '{name}-pypi-both-upload': + - post-mirror-python26 + - post-mirror-python27 + - post-mirror-python33 + + # Publish pre-releases as wheels and official releases as sdist and + # wheels, then sync to the python 2 mirrors only. + - name: publish-to-pypi-2only + pre-release: + - '{name}-tarball': + - '{name}-pypi-wheel-upload': + - post-mirror-python26 + - post-mirror-python27 + release: + - '{name}-tarball': + - '{name}-pypi-both-upload': + - post-mirror-python26 + - post-mirror-python27 + jobs: - name: ^.*$ parameter-function: single_use_node @@ -712,6 +742,7 @@ projects: - name: pypy-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - gate-cliff-tox-neutronclient-stable - gate-cliff-tox-neutronclient-tip @@ -725,14 +756,8 @@ projects: post: - hook-cliff-rtfd pre-release: - - cliff-tarball - hook-cliff-rtfd release: - - cliff-tarball: - - cliff-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - hook-cliff-rtfd - name: stackforge/driverlog @@ -1059,13 +1084,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate - pre-release: - - pycadf-tarball - release: - - pycadf-tarball: - - pycadf-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 + - name: publish-to-pypi-2only - name: openstack/sahara template: @@ -1073,20 +1092,15 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate-sahara + - name: publish-to-pypi check: - gate-sahara-pylint post: - hook-sahara-rtfd - sahara-upstream-translation-update pre-release: - - sahara-tarball - hook-sahara-rtfd release: - - sahara-tarball: - - sahara-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - hook-sahara-rtfd - sahara-merge-release-tags periodic: @@ -1099,17 +1113,12 @@ projects: - name: pypy-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi post: - hook-stevedore-rtfd pre-release: - - stevedore-tarball - hook-stevedore-rtfd release: - - stevedore-tarball: - - stevedore-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - hook-stevedore-rtfd - name: openstack/swift @@ -1151,20 +1160,13 @@ projects: - name: python3-jobs - name: openstack-server-publish-jobs - name: integrated-gate + - name: publish-to-pypi check: - gate-taskflow-tox-py26-sa7-mysql - gate-taskflow-tox-py27-sa8-mysql gate: - gate-taskflow-tox-py26-sa7-mysql - gate-taskflow-tox-py27-sa8-mysql - pre-release: - - taskflow-tarball - release: - - taskflow-tarball: - - taskflow-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/trove template: @@ -1201,11 +1203,13 @@ projects: - tuskar-tarball release: - tuskar-tarball: - - tuskar-pypi-upload + - tuskar-pypi-both-upload # Section: OpenStack client projects - name: openstack/python-barbicanclient + template: + - name: publish-to-pypi check: - gate-python-barbicanclient-pep8 - gate-python-barbicanclient-python26 @@ -1216,12 +1220,6 @@ projects: - gate-python-barbicanclient-python27 post: - python-barbicanclient-branch-tarball - release: - - python-barbicanclient-tarball: - - python-barbicanclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-ceilometerclient template: @@ -1230,6 +1228,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-ceilometerclient-python33 - gate-python-ceilometerclient-pypy @@ -1240,14 +1239,6 @@ projects: - gate-python-ceilometerclient-pypy - gate-devstack-dsvm-cells - gate-tempest-dsvm-postgres-full - pre-release: - - python-ceilometerclient-tarball - release: - - python-ceilometerclient-tarball: - - python-ceilometerclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-cinderclient template: @@ -1256,6 +1247,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-cinderclient-python33 - gate-python-cinderclient-pypy @@ -1273,14 +1265,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-cinderclient-tarball - release: - - python-cinderclient-tarball: - - python-cinderclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-ganttclient template: @@ -1288,6 +1272,7 @@ projects: - name: openstack-client-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi-2only check: - check-devstack-dsvm-cells - check-tempest-dsvm-postgres-full @@ -1305,13 +1290,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-ganttclient-tarball - release: - - python-ganttclient-tarball: - - python-ganttclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: openstack/python-glanceclient template: @@ -1320,6 +1298,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-glanceclient-python33 - gate-python-glanceclient-pypy @@ -1340,14 +1319,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-glanceclient-tarball - release: - - python-glanceclient-tarball: - - python-glanceclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/python-heatclient @@ -1355,6 +1326,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-heatclient-pep8 - gate-python-heatclient-python26 @@ -1379,14 +1351,7 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-heatclient-tarball release: - - python-heatclient-tarball: - - python-heatclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - python-heatclient-docs - name: openstack/python-ironicclient @@ -1394,6 +1359,7 @@ projects: - name: python-jobs - name: openstack-client-publish-jobs - name: check-requirements + - name: publish-to-pypi check: - gate-python-ironicclient-python33 - gate-python-ironicclient-pypy @@ -1407,14 +1373,6 @@ projects: - gate-python-ironicclient-pypy - gate-tempest-dsvm-ironic - gate-tempest-dsvm-virtual-ironic - pre-release: - - python-ironicclient-tarball - release: - - python-ironicclient-tarball: - - python-ironicclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-keystoneclient template: @@ -1423,6 +1381,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-keystoneclient-python33 - check-devstack-dsvm-cells @@ -1443,18 +1402,11 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-keystoneclient-tarball - release: - - python-keystoneclient-tarball: - - python-keystoneclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-marconiclient template: - name: check-requirements + - name: publish-to-pypi check: - gate-python-marconiclient-pep8 - gate-python-marconiclient-python26 @@ -1469,14 +1421,6 @@ projects: - gate-python-marconiclient-pypy post: - python-marconiclient-branch-tarball - pre-release: - - python-marconiclient-tarball - release: - - python-marconiclient-tarball: - - python-marconiclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-neutronclient template: @@ -1485,6 +1429,7 @@ projects: - name: check-requirements - name: integrated-gate-neutron - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-neutronclient-python33 - gate-python-neutronclient-pypy @@ -1497,14 +1442,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-neutronclient-tarball - release: - - python-neutronclient-tarball: - - python-neutronclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-novaclient template: @@ -1513,6 +1450,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-novaclient-python33 - gate-python-novaclient-pypy @@ -1534,14 +1472,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-novaclient-tarball - release: - - python-novaclient-tarball: - - python-novaclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-openstackclient template: @@ -1550,16 +1480,9 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-openstackclient-python33 - pre-release: - - python-openstackclient-tarball - release: - - python-openstackclient-tarball: - - python-openstackclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-saharaclient template: @@ -1567,14 +1490,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate-sahara - pre-release: - - python-saharaclient-tarball - release: - - python-saharaclient-tarball: - - python-saharaclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 + - name: publish-to-pypi experimental: - gate-python-saharaclient-python33 - gate-python-saharaclient-pypy @@ -1586,6 +1502,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-swiftclient-python33 - gate-python-swiftclient-pypy @@ -1605,14 +1522,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - python-swiftclient-tarball - release: - - python-swiftclient-tarball: - - python-swiftclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/python-troveclient @@ -1620,6 +1529,7 @@ projects: - name: check-requirements - name: integrated-gate - name: stable-compat-jobs + - name: publish-to-pypi check: - gate-python-troveclient-pep8 - gate-python-troveclient-python26 @@ -1634,18 +1544,11 @@ projects: - gate-python-troveclient-pypy post: - python-troveclient-branch-tarball - pre-release: - - python-troveclient-tarball - release: - - python-troveclient-tarball: - - python-troveclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/python-tuskarclient template: - name: python-jobs + - name: publish-to-pypi check: - gate-python-tuskarclient-python33 check-tripleo: @@ -1654,11 +1557,6 @@ projects: - check-tripleo-overcloud-precise experimental-tripleo: - check-tripleo-ironic-undercloud-precise - pre-release: - - python-tuskarclient-tarball - release: - - python-tuskarclient-tarball: - - python-tuskarclient-pypi-upload # Section: Other OpenStack projects @@ -1666,6 +1564,7 @@ projects: - name: openstack/diskimage-builder template: - name: check-requirements + - name: publish-to-pypi check: - gate-diskimage-builder-pep8 - gate-diskimage-builder-python26 @@ -1688,14 +1587,6 @@ projects: post: - diskimage-builder-coverage - diskimage-builder-branch-tarball - pre-release: - - diskimage-builder-tarball - release: - - diskimage-builder-tarball: - - diskimage-builder-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/django_openstack_auth template: @@ -1710,7 +1601,7 @@ projects: - django_openstack_auth-tarball release: - django_openstack_auth-tarball: - - django_openstack_auth-pypi-upload + - django_openstack_auth-pypi-both-upload - name: stackforge/gertty check: @@ -1740,6 +1631,7 @@ projects: - name: openstack/heat-cfntools template: - name: check-requirements + - name: publish-to-pypi check: - gate-heat-cfntools-pep8 - gate-heat-cfntools-python26 @@ -1751,14 +1643,7 @@ projects: post: - heat-cfntools-branch-tarball - heat-cfntools-coverage - pre-release: - - heat-cfntools-tarball release: - - heat-cfntools-tarball: - - heat-cfntools-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - heat-cfntools-docs - name: openstack/heat-templates @@ -1774,18 +1659,12 @@ projects: - noop - name: openstack/openstack-doc-tools + template: + - name: publish-to-pypi check: - gate-openstack-doc-tools-pep8 gate: - gate-openstack-doc-tools-pep8 - pre-release: - - openstack-doc-tools-tarball - release: - - openstack-doc-tools-tarball: - - openstack-doc-tools-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/openstack-planet check: @@ -1798,6 +1677,7 @@ projects: - name: openstack/os-apply-config template: - name: check-requirements + - name: publish-to-pypi check: - gate-os-apply-config-pep8 - gate-os-apply-config-python26 @@ -1816,19 +1696,12 @@ projects: post: - os-apply-config-coverage - os-apply-config-branch-tarball - pre-release: - - os-apply-config-tarball - release: - - os-apply-config-tarball: - - os-apply-config-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/os-cloud-config template: - name: check-requirements + - name: publish-to-pypi check: - gate-os-cloud-config-pep8 - gate-os-cloud-config-python26 @@ -1847,19 +1720,12 @@ projects: post: - os-cloud-config-coverage - os-cloud-config-branch-tarball - pre-release: - - os-cloud-config-tarball - release: - - os-cloud-config-tarball: - - os-cloud-config-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/os-collect-config template: - name: check-requirements + - name: publish-to-pypi check: - gate-os-collect-config-pep8 - gate-os-collect-config-python26 @@ -1878,19 +1744,12 @@ projects: post: - os-collect-config-coverage - os-collect-config-branch-tarball - pre-release: - - os-collect-config-tarball - release: - - os-collect-config-tarball: - - os-collect-config-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/os-refresh-config template: - name: check-requirements + - name: publish-to-pypi check: - gate-os-refresh-config-pep8 - gate-os-refresh-config-python26 @@ -1909,33 +1768,18 @@ projects: post: - os-refresh-config-coverage - os-refresh-config-branch-tarball - pre-release: - - os-refresh-config-tarball - release: - - os-refresh-config-tarball: - - os-refresh-config-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/oslosphinx template: - name: check-requirements + - name: publish-to-pypi check: - gate-oslosphinx-pep8 gate: - gate-oslosphinx-pep8 post: - oslosphinx-branch-tarball - pre-release: - - oslosphinx-tarball - release: - - oslosphinx-tarball: - - oslosphinx-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/oslotest template: @@ -1944,6 +1788,7 @@ projects: - name: pypy-jobs - name: openstack-server-publish-jobs - name: check-requirements + - name: publish-to-pypi check: - check-oslotest-dsvm-diskimage-builder - check-oslotest-dsvm-oslo.config @@ -1954,14 +1799,6 @@ projects: - gate-oslotest-dsvm-oslo.config - gate-oslotest-dsvm-oslo.messaging - gate-oslotest-dsvm-tripleo-image-elements - pre-release: - - oslotest-tarball - release: - - oslotest-tarball: - - oslotest-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/oslo-incubator template: @@ -1987,6 +1824,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - gate-oslo.config-python33 - check-devstack-dsvm-cells @@ -1995,19 +1833,11 @@ projects: - gate-oslo.config-python33 - gate-devstack-dsvm-cells - gate-oslotest-dsvm-oslo.config - pre-release: - - oslo.config-tarball experimental-tripleo: - check-tripleo-ironic-seed-precise - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - release: - - oslo.config-tarball: - - oslo.config-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/oslo.db template: @@ -2015,6 +1845,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi-2only check: - check-devstack-dsvm-cells - gate-tempest-dsvm-large-ops @@ -2030,13 +1861,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - oslo.db-tarball - release: - - oslo.db-tarball: - - oslo.db-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: openstack/oslo.i18n template: @@ -2044,6 +1868,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - gate-oslo.i18n-python33 - check-devstack-dsvm-cells @@ -2052,19 +1877,11 @@ projects: - gate-oslo.i18n-python33 - gate-devstack-dsvm-cells - gate-oslotest-dsvm-oslo.i18n - pre-release: - - oslo.i18n-tarball experimental-tripleo: - check-tripleo-ironic-seed-precise - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - release: - - oslo.i18n-tarball: - - oslo.i18n-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/oslo.messaging template: @@ -2072,6 +1889,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - check-devstack-dsvm-cells - gate-tempest-dsvm-large-ops @@ -2087,20 +1905,13 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - oslo.messaging-tarball - release: - - oslo.messaging-tarball: - - oslo.messaging-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/oslo.rootwrap template: - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - gate-oslo.rootwrap-pep8 - gate-oslo.rootwrap-python26 @@ -2124,14 +1935,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - oslo.rootwrap-tarball - release: - - oslo.rootwrap-tarball: - - oslo.rootwrap-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/oslo.version template: @@ -2139,6 +1942,7 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi-2only check: - gate-oslo.version-pypy - gate-oslo.version-python33 @@ -2152,13 +1956,6 @@ projects: - check-tripleo-undercloud-precise - check-tripleo-ironic-undercloud-precise - check-tripleo-overcloud-precise - pre-release: - - oslo.version-tarball - release: - - oslo.version-tarball: - - oslo.version-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: openstack/oslo.vmware template: @@ -2166,17 +1963,10 @@ projects: - name: openstack-server-publish-jobs - name: check-requirements - name: integrated-gate + - name: publish-to-pypi check: - gate-oslo.vmware-requirements - gate-oslo.vmware-python33 - pre-release: - - oslo.vmware-tarball - release: - - oslo.vmware-tarball: - - oslo.vmware-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/requirements template: @@ -2220,6 +2010,7 @@ projects: - name: openstack/sahara-dashboard template: - name: check-requirements + - name: publish-to-pypi check: - gate-sahara-dashboard-pep8 - gate-sahara-dashboard-python26 @@ -2231,14 +2022,6 @@ projects: post: - sahara-dashboard-branch-tarball - sahara-dashboard-coverage - pre-release: - - sahara-dashboard-tarball - release: - - sahara-dashboard-tarball: - - sahara-dashboard-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 # TODO: add docs - name: openstack/sahara-extra @@ -2259,23 +2042,18 @@ projects: - name: openstack/sahara-image-elements template: - name: check-requirements + - name: publish-to-pypi check: - gate-sahara-image-elements-pep8 gate: - gate-sahara-image-elements-pep8 post: - sahara-image-elements-branch-tarball - pre-release: - - sahara-image-elements-tarball - release: - - sahara-image-elements-tarball: - - sahara-image-elements-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/swift-bench + template: + - name: publish-to-pypi check: - gate-swift-bench-pep8 - gate-swift-bench-python26 @@ -2286,14 +2064,6 @@ projects: - gate-swift-bench-python27 post: - swift-bench-branch-tarball - pre-release: - - swift-bench-tarball - release: - - swift-bench-tarball: - - swift-bench-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 #TODO: add docs - name: openstack/ironic-python-agent @@ -2417,6 +2187,8 @@ projects: - tripleo-heat-templates-tarball - name: openstack/tripleo-image-elements + template: + - name: publish-to-pypi check: - check-oslotest-dsvm-tripleo-image-elements check-tripleo: @@ -2430,14 +2202,6 @@ projects: - check-tripleo-ironic-undercloud-precise post: - tripleo-image-elements-branch-tarball - pre-release: - - tripleo-image-elements-tarball - release: - - tripleo-image-elements-tarball: - - tripleo-image-elements-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack/tripleo-incubator check: @@ -2476,6 +2240,8 @@ projects: # TODO: add docs - name: openstack/tuskar-ui + template: + - name: publish-to-pypi check: - gate-tuskar-ui-pep8 - gate-tuskar-ui-python26 @@ -2493,11 +2259,6 @@ projects: - check-tripleo-overcloud-precise post: - tuskar-ui-branch-tarball - pre-release: - - tuskar-ui-tarball - release: - - tuskar-ui-tarball: - - tuskar-ui-pypi-upload # Section: OpenStack API projects @@ -2598,6 +2359,8 @@ projects: # Section: OpenStack development projects - name: openstack-dev/bash8 + template: + - name: publish-to-pypi check: - gate-bash8-pep8 - gate-bash8-python26 @@ -2609,14 +2372,6 @@ projects: post: - bash8-branch-tarball - bash8-coverage - pre-release: - - bash8-tarball - release: - - bash8-tarball: - - bash8-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-dev/cookiecutter check: @@ -2676,6 +2431,7 @@ projects: - name: openstack-dev/hacking template: - name: python-jobs + - name: publish-to-pypi check: - gate-hacking-python33 - gate-hacking-pypy @@ -2688,14 +2444,8 @@ projects: - hacking-docs pre-release: - hacking-docs - - hacking-tarball release: - hacking-docs - - hacking-tarball: - - hacking-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-dev/heat-cfnclient check: @@ -2723,6 +2473,7 @@ projects: template: - name: python-jobs - name: integrated-gate + - name: publish-to-pypi check: - gate-pbr-python33 - gate-pbr-pypy @@ -2750,14 +2501,8 @@ projects: - pbr-docs pre-release: - pbr-docs - - pbr-tarball release: - pbr-docs - - pbr-tarball: - - pbr-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-dev/sandbox check: @@ -2790,6 +2535,8 @@ projects: - noop - name: openstack-infra/bugdaystats + template: + - name: publish-to-pypi check: - gate-bugdaystats-pep8 gate: @@ -2797,14 +2544,6 @@ projects: post: - bugdaystats-branch-tarball - bugdaystats-coverage - pre-release: - - bugdaystats-tarball - release: - - bugdaystats-tarball: - - bugdaystats-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/config check: @@ -2887,18 +2626,13 @@ projects: - name: openstack-infra/gear template: - name: python-jobs + - name: publish-to-pypi post: - hook-gear-rtfd pre-release: - - gear-tarball - hook-gear-rtfd release: - hook-gear-rtfd - - gear-tarball: - - gear-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/gearman-plugin check: @@ -2933,34 +2667,22 @@ projects: - gate-gerrit-powered-agenda-python33 - name: openstack-infra/gerritbot + template: + - name: publish-to-pypi check: - gate-gerritbot-pep8 gate: - gate-gerritbot-pep8 post: - gerritbot-branch-tarball - pre-release: - - gerritbot-tarball - release: - - gerritbot-tarball: - - gerritbot-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/gerritlib + template: + - name: publish-to-pypi check: - gate-gerritlib-pep8 gate: - gate-gerritlib-pep8 - pre-release: - - gerritlib-tarball - release: - - gerritlib-tarball: - - gerritlib-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/gitdm check: @@ -2971,6 +2693,8 @@ projects: - periodic-gitdm - name: openstack-infra/git-review + template: + - name: publish-to-pypi check: - gate-git-review-pep8 - gate-git-review-python26 @@ -2983,14 +2707,6 @@ projects: - gate-git-review-python33 post: - git-review-branch-tarball - pre-release: - - git-review-tarball - release: - - git-review-tarball: - - git-review-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/groups check: @@ -3021,36 +2737,23 @@ projects: - noop - name: openstack-infra/jeepyb + template: + - name: publish-to-pypi check: - gate-jeepyb-pep8 gate: - gate-jeepyb-pep8 - pre-release: - - jeepyb-tarball - release: - - jeepyb-tarball: - - jeepyb-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/jenkins-job-builder template: - name: python-jobs - name: python3-jobs + - name: publish-to-pypi check: - jenkins-job-builder-compare-xml - jenkins-job-builder-coverage post: - jenkins-job-builder-docs - pre-release: - - jenkins-job-builder-tarball - release: - - jenkins-job-builder-tarball: - - jenkins-job-builder-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/lodgeit check: @@ -3067,32 +2770,19 @@ projects: - name: openstack-infra/nodepool template: - name: python-jobs + - name: publish-to-pypi post: - nodepool-docs - pre-release: - - nodepool-tarball - release: - - nodepool-tarball: - - nodepool-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/nose-html-output + template: + - name: publish-to-pypi check: - noop gate: - noop post: - nose-html-output-branch-tarball - pre-release: - - nose-html-output-tarball - release: - - nose-html-output-tarball: - - nose-html-output-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/odsreg check: @@ -3157,6 +2847,8 @@ projects: - noop - name: openstack-infra/pypi-mirror + template: + - name: publish-to-pypi check: - gate-pypi-mirror-pep8 - check-requirements-integration-dsvm @@ -3167,14 +2859,6 @@ projects: - post-mirror-python26 - post-mirror-python27 - post-mirror-python33 - pre-release: - - pypi-mirror-tarball - release: - - pypi-mirror-tarball: - - pypi-mirror-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-jenkins # docs is missing a build_sphinx entry point in setup.py @@ -3196,7 +2880,7 @@ projects: - python-jenkins-coverage release: - python-jenkins-tarball: - - python-jenkins-pypi-upload + - python-jenkins-pypi-both-upload - name: openstack-infra/releasestatus check: @@ -3218,6 +2902,8 @@ projects: - gate-release-tools-pypy - name: openstack-infra/reviewday + template: + - name: publish-to-pypi check: - gate-reviewday-pep8 gate: @@ -3225,62 +2911,38 @@ projects: post: - reviewday-branch-tarball - reviewday-coverage - pre-release: - - reviewday-tarball - release: - - reviewday-tarball: - - reviewday-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/reviewstats + template: + - name: publish-to-pypi template: - name: python-jobs check: - gate-reviewstats-python33 gate: - gate-reviewstats-python33 - pre-release: - - reviewstats-tarball - release: - - reviewstats-tarball: - - reviewstats-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/statusbot + template: + - name: publish-to-pypi check: - gate-statusbot-pep8 gate: - gate-statusbot-pep8 post: - statusbot-branch-tarball - pre-release: - - statusbot-tarball - release: - - statusbot-tarball: - - statusbot-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/storyboard + template: + - name: publish-to-pypi template: - name: python-jobs post: - storyboard-docs pre-release: - storyboard-docs - - storyboard-tarball release: - storyboard-docs - - storyboard-tarball: - - storyboard-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: openstack-infra/storyboard-webclient check: @@ -3317,6 +2979,8 @@ projects: - zmq-event-publisher-jenkinsci-upload - name: openstack-infra/zuul + template: + - name: publish-to-pypi template: - name: python-jobs check: @@ -3325,14 +2989,8 @@ projects: - zuul-docs pre-release: - zuul-docs - - zuul-tarball release: - zuul-docs - - zuul-tarball: - - zuul-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 periodic: - periodic-test @@ -3363,6 +3021,8 @@ projects: - noop - name: stackforge/billingstack + template: + - name: publish-to-pypi check: - gate-billingstack-pep8 - gate-billingstack-python26 @@ -3375,16 +3035,10 @@ projects: - hook-billingstack-rtfd - billingstack-coverage - billingstack-branch-tarball - pre-release: - - billingstack-tarball - release: - - billingstack-tarball: - - billingstack-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/bindep + template: + - name: publish-to-pypi check: - gate-bindep-pep8 - gate-bindep-python26 @@ -3396,14 +3050,6 @@ projects: post: - bindep-branch-tarball - bindep-coverage - pre-release: - - bindep-tarball - release: - - bindep-tarball: - - bindep-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/bufunfa check: @@ -3646,6 +3292,8 @@ projects: - gate-cookbook-openstack-telemetry-chef-unit - name: stackforge/designate + template: + - name: publish-to-pypi check: - gate-designate-pep8 - gate-designate-python26 @@ -3658,14 +3306,6 @@ projects: - hook-designate-rtfd - designate-coverage - designate-branch-tarball - pre-release: - - designate-tarball - release: - - designate-tarball: - - designate-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/designate-specs check: @@ -3865,6 +3505,8 @@ projects: - noop - name: stackforge/mistral + template: + - name: publish-to-pypi check: - gate-mistral-pep8 - gate-mistral-python26 @@ -3879,29 +3521,16 @@ projects: - gate-mistral-docs post: - mistral-branch-tarball - pre-release: - - mistral-tarball - release: - - mistral-tarball: - - mistral-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/mistral-dashboard template: - name: python-jobs - name: python3-jobs - pre-release: - - mistral-dashboard-tarball - release: - - mistral-dashboard-tarball: - - mistral-dashboard-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 + - name: publish-to-pypi - name: stackforge/mistral-extra + template: + - name: publish-to-pypi check: - gate-mistral-extra-pep8 - gate-mistral-extra-python26 @@ -3915,16 +3544,10 @@ projects: - gate-mistral-extra-docs post: - mistral-extra-branch-tarball - pre-release: - - mistral-extra-tarball - release: - - mistral-extra-tarball: - - mistral-extra-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-mistralclient + template: + - name: publish-to-pypi check: - gate-python-mistralclient-pep8 - gate-python-mistralclient-python26 @@ -3938,16 +3561,10 @@ projects: - gate-python-mistralclient-docs post: - python-mistralclient-branch-tarball - pre-release: - - python-mistralclient-tarball - release: - - python-mistralclient-tarball: - - python-mistralclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/magnetodb + template: + - name: publish-to-pypi check: - gate-magnetodb-pep8 - gate-magnetodb-python26 @@ -3962,13 +3579,6 @@ projects: - gate-magnetodb-devstack-dsvm post: - magnetodb-branch-tarball - pre-release: - - magnetodb-tarball - release: - - magnetodb-tarball: - - magnetodb-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: stackforge/MRaaS check: @@ -3992,10 +3602,8 @@ projects: - murano-branch-tarball - hook-murano-rtfd pre-release: - - murano-tarball - hook-murano-rtfd release: - - murano-tarball - hook-murano-rtfd - name: stackforge/murano-common @@ -4129,6 +3737,8 @@ projects: - gate-packstack-python27 - name: stackforge/pecan + template: + - name: publish-to-pypi check: - gate-pecan-pep8 - gate-pecan-python26 @@ -4154,14 +3764,8 @@ projects: post: - pecan-branch-tarball pre-release: - - pecan-tarball - hook-pecan-rtfd release: - - pecan-tarball: - - pecan-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - hook-pecan-rtfd - name: stackforge/powervc-driver @@ -4426,14 +4030,7 @@ projects: template: - name: python-jobs - name: check-requirements - pre-release: - - sahara-guestagent-tarball - release: - - sahara-guestagent-tarball: - - sahara-guestagent-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 + - name: publish-to-pypi - name: stackforge/puppet-swift check: @@ -4482,6 +4079,8 @@ projects: - gate-puppet-vswitch-puppet-unit-3.1 - name: stackforge/pyghmi + template: + - name: publish-to-pypi check: - gate-pyghmi-pep8 - gate-pyghmi-requirements @@ -4490,14 +4089,6 @@ projects: - gate-pyghmi-requirements post: - pyghmi-branch-tarball - pre-release: - - pyghmi-tarball - release: - - pyghmi-tarball: - - pyghmi-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-blazarclient template: @@ -4518,6 +4109,8 @@ projects: - python-blazarclient-tarball - name: stackforge/python-designateclient + template: + - name: publish-to-pypi check: - gate-python-designateclient-pep8 - gate-python-designateclient-python26 @@ -4530,34 +4123,21 @@ projects: - hook-python-designateclient-rtfd - python-designateclient-coverage - python-designateclient-branch-tarball - pre-release: - - python-designateclient-tarball - release: - - python-designateclient-tarball: - - python-designateclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-kiteclient template: - name: python-jobs + - name: publish-to-pypi check: - gate-python-kiteclient-requirements - gate-python-kiteclient-python33 gate: - gate-python-kiteclient-requirements - gate-python-kiteclient-python33 - pre-release: - - python-kiteclient-tarball - release: - - python-kiteclient-tarball: - - python-kiteclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-libraclient + template: + - name: publish-to-pypi check: - gate-python-libraclient-pep8 - gate-python-libraclient-python27 @@ -4570,14 +4150,8 @@ projects: - python-libraclient-branch-tarball pre-release: - hook-python-libraclient-rtfd - - python-libraclient-tarball release: - hook-python-libraclient-rtfd - - python-libraclient-tarball: - - python-libraclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-manilaclient check: @@ -4595,6 +4169,8 @@ projects: - python-manilaclient-coverage - name: stackforge/python-muranoclient + template: + - name: publish-to-pypi check: - gate-python-muranoclient-pep8 - gate-python-muranoclient-python26 @@ -4608,14 +4184,6 @@ projects: - gate-python-muranoclient-python27 post: - python-muranoclient-branch-tarball - pre-release: - - python-muranoclient-tarball - release: - - python-muranoclient-tarball: - - python-muranoclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-rallyclient template: @@ -4637,36 +4205,23 @@ projects: template: - name: python-jobs - name: check-requirements + - name: publish-to-pypi check: - gate-python-solumclient-python33 - gate-python-solumclient-pypy gate: - gate-python-solumclient-python33 - gate-python-solumclient-pypy - pre-release: - - python-solumclient-tarball - release: - - python-solumclient-tarball: - - python-solumclient-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/solum-dashboard template: - name: python-jobs - name: check-requirements + - name: publish-to-pypi-2only check: - gate-solum-dashboard-pypy gate: - gate-solum-dashboard-pypy - pre-release: - - solum-dashboard-tarball - release: - - solum-dashboard-tarball: - - solum-dashboard-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: stackforge/rally template: @@ -4745,6 +4300,8 @@ projects: - solum-tarball - name: stackforge/sphinxcontrib-docbookrestapi + template: + - name: publish-to-pypi check: - gate-sphinxcontrib-docbookrestapi-pep8 - gate-sphinxcontrib-docbookrestapi-python26 @@ -4755,16 +4312,10 @@ projects: - gate-sphinxcontrib-docbookrestapi-python26 - gate-sphinxcontrib-docbookrestapi-python27 - gate-sphinxcontrib-docbookrestapi-python33 - pre-release: - - sphinxcontrib-docbookrestapi-tarball - release: - - sphinxcontrib-docbookrestapi-tarball: - - sphinxcontrib-docbookrestapi-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/sqlalchemy-migrate + template: + - name: publish-to-pypi check: - gate-sqlalchemy-migrate-python26 - gate-sqlalchemy-migrate-python27 @@ -4780,14 +4331,8 @@ projects: - sqlalchemy-migrate-branch-tarball - hook-sqlalchemy-migrate-rtfd pre-release: - - sqlalchemy-migrate-tarball - hook-sqlalchemy-migrate-rtfd release: - - sqlalchemy-migrate-tarball: - - sqlalchemy-migrate-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - hook-sqlalchemy-migrate-rtfd - name: stackforge/staccato @@ -4815,7 +4360,7 @@ projects: - hook-stackalytics-rtfd release: - stackalytics-tarball: - - stackalytics-pypi-upload + - stackalytics-pypi-both-upload - hook-stackalytics-rtfd - name: stackforge/swift3 @@ -4837,6 +4382,8 @@ projects: - swiftsync-tarball - name: stackforge/tomograph + template: + - name: publish-to-pypi-2only check: - gate-tomograph-pep8 - gate-tomograph-python26 @@ -4849,15 +4396,10 @@ projects: - gate-tomograph-python27 post: - tomograph-branch-tarball - pre-release: - - tomograph-tarball - release: - - tomograph-tarball: - - tomograph-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - name: stackforge/tooz + template: + - name: publish-to-pypi check: - gate-tooz-pep8 - gate-tooz-python26 @@ -4870,11 +4412,6 @@ projects: - gate-tooz-python33 post: - tooz-branch-tarball - pre-release: - - tooz-tarball - release: - - tooz-tarball: - - tooz-pypi-upload - name: stackforge/turbo-hipster check: @@ -4898,6 +4435,8 @@ projects: - gate-warm-python27 - name: stackforge/wsme + template: + - name: publish-to-pypi check: - gate-wsme-python26 - gate-wsme-python27 @@ -4910,18 +4449,6 @@ projects: - gate-wsme-pep8 post: - wsme-branch-tarball - pre-release: - - wsme-tarball: - - wsme-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - release: - - wsme-tarball: - - wsme-pypi-upload: - - post-mirror-python26 - - post-mirror-python27 - - post-mirror-python33 - name: stackforge/python-openstacksdk template: