From baaddcc7c012ec22a7e734dba9bca45ef2359e72 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Wed, 4 Jul 2012 11:26:10 -0500 Subject: [PATCH] Only build tarball once for client libs. For any given revision, we should only ever create one tarball. Similarly, we should upload that tarball and only that tarball to tarballs.openstack.org as well as pypi if it's appropriate to do so. Library projects are sufficiently different at this point that I made a different template for them. It would be neat if we could get nested templates. Change-Id: Iec81d0d5c0c3a4a8021213fe4bb6884c45fb483a --- .../openstack/python-cinderclient.yml | 25 +- .../openstack/python-glanceclient.yml | 25 +- .../openstack/python-keystoneclient.yml | 25 +- .../projects/openstack/python-novaclient.yml | 25 +- .../openstack/python-openstackclient.yml | 25 +- .../openstack/python-quantumclient.yml | 25 +- .../projects/openstack/python-swiftclient.yml | 25 +- .../files/templates/python_library_jobs.yml | 295 ++++++++++++++++++ .../files/zuul/layout.yaml | 7 - 9 files changed, 302 insertions(+), 175 deletions(-) create mode 100644 modules/jenkins_jobs/files/templates/python_library_jobs.yml diff --git a/modules/jenkins_jobs/files/projects/openstack/python-cinderclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-cinderclient.yml index 7521501cd9..04cec0b736 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-cinderclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-cinderclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-cinderclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-cinderclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-cinderclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-cinderclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-glanceclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-glanceclient.yml index 82b8a622a6..63f25ee76a 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-glanceclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-glanceclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-glanceclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-glanceclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-glanceclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-glanceclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-keystoneclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-keystoneclient.yml index 4e821e3829..beb15de6c3 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-keystoneclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-keystoneclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-keystoneclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-keystoneclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-keystoneclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-keystoneclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-novaclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-novaclient.yml index f1e0eb8c42..dd689931a2 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-novaclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-novaclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-novaclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-novaclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-novaclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-novaclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-openstackclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-openstackclient.yml index fb01f4a96a..250cebaa8e 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-openstackclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-openstackclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-openstackclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-openstackclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-openstackclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-openstackclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-quantumclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-quantumclient.yml index 2bccd862ed..1166c11253 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-quantumclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-quantumclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-quantumclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-quantumclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-quantumclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-quantumclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/projects/openstack/python-swiftclient.yml b/modules/jenkins_jobs/files/projects/openstack/python-swiftclient.yml index d70e04759c..0c700c413b 100644 --- a/modules/jenkins_jobs/files/projects/openstack/python-swiftclient.yml +++ b/modules/jenkins_jobs/files/projects/openstack/python-swiftclient.yml @@ -1,5 +1,5 @@ project: - template: 'python_jobs' + template: 'python_library_jobs' values: name: 'python-swiftclient' @@ -10,26 +10,3 @@ values: tarball_project: 'python-swiftclient' doc_publisher_site: 'docs.openstack.org' node: 'precise' - ---- -# pypi-upload -main: - name: 'python-swiftclient-pypi' - review_site: 'review.openstack.org' - github_org: 'openstack' - project: 'python-swiftclient' - authenticatedBuild: 'false' - concurrent: 'true' - -triggers: - - zuul_post - -builders: - - gerrit_git_prep - - shell: tox -v -evenv python setup.py sdist upload - -scm: - scm: 'false' - -assignednode: - node: 'pypi' diff --git a/modules/jenkins_jobs/files/templates/python_library_jobs.yml b/modules/jenkins_jobs/files/templates/python_library_jobs.yml new file mode 100644 index 0000000000..05c5afbfaf --- /dev/null +++ b/modules/jenkins_jobs/files/templates/python_library_jobs.yml @@ -0,0 +1,295 @@ +--- +# coverage +main: + name: '@NAME@-coverage' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - pollscm: '*/15 * * * *' + +builders: + - coverage + +post_build_actions: + - coverage + +scm: + scm: 'true' + +assignednode: + node: '@NODE@' + +--- +# pep8-gate +main: + name: 'gate-@NAME@-pep8' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - zuul + +builders: + - gerrit_git_prep + - pep8 + +post_build_actions: + - pep8 + +scm: + scm: 'false' + +assignednode: + node: '@NODE@' + +--- +# python26-gate +main: + name: 'gate-@NAME@-python26' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - zuul + +builders: + - gerrit_git_prep + - python26 + +post_build_actions: + - junit: + results: '**/nosetests.xml' + +scm: + scm: 'false' + +# >= precise does not have python2.6 +assignednode: + node: 'oneiric' + +--- +# python27-gate +main: + name: 'gate-@NAME@-python27' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - zuul + +builders: + - gerrit_git_prep + - python27 + +post_build_actions: + - junit: + results: '**/nosetests.xml' + +scm: + scm: 'false' + +assignednode: + node: '@NODE@' + +--- +# docs +main: + name: '@NAME@-docs' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - pollscm: '*/15 * * * *' + +builders: + - docs + +post_build_actions: + - ftp: + site: '@DOC_PUBLISHER_SITE@' + remote_dir: 'developer/@NAME@' + source_files: 'doc/build/html/**' + remove_prefix: 'doc/build/html' + excludes: '' + +scm: + scm: 'true' + +assignednode: + node: '@NODE@' + +--- +# merge-gate +main: + name: 'gate-@NAME@-merge' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - zuul + +builders: + - gerrit_git_prep + +scm: + scm: 'false' + +assignednode: + node: '@NODE@' + +--- +# ppa +main: + name: '@NAME@-ppa' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBuild: 'false' + disabled: true + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +builders: + - ppa + +post_build_actions: + - ppa + +scm: + scm: 'false' + +assignednode: + node: '@NODE@' + +--- +# tarball +main: + name: '@NAME@-tarball' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBulid: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +logrotate: + daysToKeep: 28 + numToKeep: -1 + artifactDaysToKeep: -1 + artifactNumToKeep: -1 + +triggers: + - zuul_post + +builders: + - gerrit_git_prep + - shell: | + #!/bin/bash -xe + BRANCH=$GERRIT_REFNAME + BRANCH_PATH=`echo $BRANCH | tr / -` + + tox -v -evenv python setup.py sdist upload + cp dist/* dist/@NAME@-$BRANCH_PATH.tar.gz + +post_build_actions: + - tarball: + site: '@PUBLISHER_SITE@' + project: '@TARBALL_PROJECT@' + +scm: + scm: 'false' + +assignednode: + node: '@NODE@' + +--- +# pypi-upload +main: + name: '@NAME@-pypi' + review_site: '@REVIEW_SITE@' + github_org: '@GITHUB_ORG@' + project: '@NAME@' + authenticatedBulid: 'false' + disabled: @DISABLED@ + concurrent: 'true' + +triggers: + - zuul_post + +builders: + - gerrit_git_prep + - shell: tox -v -evenv python setup.py sdist upload + +post_build_actions: + - tarball: + site: '@PUBLISHER_SITE@' + project: '@TARBALL_PROJECT@' + +scm: + scm: 'false' + +assignednode: + node: 'pypi' diff --git a/modules/openstack-ci-config/files/zuul/layout.yaml b/modules/openstack-ci-config/files/zuul/layout.yaml index 6e828f8c07..200061fa6a 100644 --- a/modules/openstack-ci-config/files/zuul/layout.yaml +++ b/modules/openstack-ci-config/files/zuul/layout.yaml @@ -226,7 +226,6 @@ projects: post: - python-cinderclient-tarball publish: - - python-cinderclient-tarball - python-cinderclient-pypi silent: - gate-tempest-devstack-vm @@ -247,7 +246,6 @@ projects: post: - python-glanceclient-tarball publish: - - python-glanceclient-tarball - python-glanceclient-pypi silent: - gate-tempest-devstack-vm @@ -268,7 +266,6 @@ projects: post: - python-keystoneclient-tarball publish: - - python-keystoneclient-tarball - python-keystoneclient-pypi silent: - gate-tempest-devstack-vm @@ -289,7 +286,6 @@ projects: post: - python-novaclient-tarball publish: - - python-novaclient-tarball - python-novaclient-pypi silent: - gate-tempest-devstack-vm @@ -308,7 +304,6 @@ projects: post: - python-openstackclient-tarball publish: - - python-openstackclient-tarball - python-openstackclient-pypi - name: openstack/python-quantumclient @@ -327,7 +322,6 @@ projects: post: - python-quantumclient-tarball publish: - - python-quantumclient-tarball - python-quantumclient-pypi silent: - gate-tempest-devstack-vm @@ -346,7 +340,6 @@ projects: post: - python-swiftclient-tarball publish: - - python-swiftclient-tarball - python-swiftclient-pypi - name: openstack-dev/devstack