Remove merge jobs.

Zuul internally merges or cherry-picks changes before running jobs
and gerrit-git-prep now uses the output of that.  Therefore, merge
jobs are redundant.  However, some projects have no gate tests,
so create a noop job for those projects so Zuul has something to run.
As long as it doesn't actually do anything with a git repo, it can
be shared by all projects.

* Remove definitions of merge jobs in jjb.
* Add a new singleton 'gate-noop' job.
* Remove invocations of -merge jobs in zuul, replacing them
  with -noop jobs if they are the only jobs for a pipeline.
* Update new job documentation to mention gate-noop, and lack
  of need to update projects.yaml if not using python-jobs.

Change-Id: I56d3f0f99b2f05780fc82222854db4f1c8f68b57
Reviewed-on: https://review.openstack.org/18246
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
This commit is contained in:
James E. Blair 2012-12-17 08:59:47 -08:00 committed by Jenkins
parent 704a02d3d5
commit e04970cc53
6 changed files with 387 additions and 716 deletions

View File

@ -85,81 +85,59 @@ these additional tools.
Add Jenkins Jobs to StackForge Projects
=======================================
In the same openstack-infra/config repository (and in the same change if
you like) we need to edit two additional files to setup Jenkins jobs
In the same openstack-infra/config repository (and in the same change
if you like) we need to edit additional files to setup Jenkins jobs
and Zuul for the new StackForge project.
Edit
If you are interested in using the standard python Jenkins jobs (docs,
pep8, python 2.6 and 2.7 unittests, and coverage), edit
``openstack-infra/config/modules/openstack_project/files/jenkins_job_builder/config/projects.yaml``
and add a new section for your project at the end of the file. It should
look something like::
and add a new section for your project at the end of the file. It
should look something like::
- project:
name: project-name
github-org: stackforge
node: precise
jobs:
- gate-{name}-merge
This will add a single Jenkins job for your project called
gate-project-name-merge. This job will return success if the submitted
change can be merged into the current state of your project's master
branch and failure otherwise.
The above config is the bare minimum Jenkins job config needed. If you
are interested in using the standard python Jenkins jobs (docs, pep8,
python 2.6 and 2.7 unittests, and coverage) your entry in
``projects.yaml`` should look like this instead::
- project:
name: project-name
github-org: stackforge
# Requires additional config please discuss docs with infra team.
doc-publisher-site: some.ftp.host
node: precise
jobs:
- python-jobs
Now that we have a Jenkins job we need to tell Zuul to run that job when
If you aren't ready to run any gate tests yet, you don't need to edit
``projects.yaml``.
Now that we have Jenkins jobs we need to tell Zuul to run them when
appropriate. Edit
``openstack-infra/config/modules/openstack_project/files/zuul/layout.yaml``
and add a new section for your project at the end of the file. It should
look something like::
and add a new section for your project at the end of the file. It
should look something like::
- name: stackforge/project-name
check:
- gate-project-name-merge
- gate-project-name-docs
- gate-project-name-pep8
- gate-project-name-python26
- gate-project-name-python27
gate:
- gate-project-name-merge
This configures zuul to check if change patchsets can merge on every
submission to Gerrit and will check that the change can merge before
attempting to merge approved changes.
If you configured the ``python-jobs`` your ``zuul/layout.yaml`` should
look like this instead::
- name: stackforge/project-name
check:
- gate-project-name-merge
- gate-project-name-docs
- gate-project-name-pep8
- gate-project-name-python26
- gate-project-name-python27
gate:
- gate-project-name-merge
- gate-project-name-docs
- gate-project-name-pep8
- gate-project-name-python26
- gate-project-name-python27
- gate-project-name-docs
- gate-project-name-pep8
- gate-project-name-python26
- gate-project-name-python27
post:
- project-name-coverage
- project-name-docs
publish:
- project-name-docs
If you aren't ready to run any gate tests yet and did not configure
python-jobs in project.yaml, it should look like this instead::
- name: stackforge/project-name
check:
- gate-noop
gate:
- gate-noop
That concludes the bare minimum openstack-infra/config changes necessary to
add a project to StackForge. You can commit these changes and submit
them to review.openstack.org at this point, or you can wait a little

View File

@ -1,8 +1,3 @@
- job-group:
name: api-jobs
jobs:
- gate-{name}-merge
# this moves the openstack-api-programming job from manuals.yaml and adjusts target
# and publishers accordingly
- job:

View File

@ -0,0 +1,7 @@
- job:
name: gate-noop
triggers:
- zuul
node: precise

View File

@ -1,12 +1,3 @@
- project:
name: api-site
github-org: openstack
node: precise
doc-publisher-site: api.openstack.org
jobs:
- gate-{name}-merge
- project:
name: ceilometer
github-org: openstack
@ -43,43 +34,6 @@
- openstack-compute-api-doc
- project:
name: devstack-gate
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: devstack
github-org: openstack-dev
node: precise
jobs:
- gate-{name}-merge
- project:
name: diskimage-builder
github-org: stackforge
node: precise
tarball-publisher-site: 173.203.107.207
jobs:
- gate-{name}-merge
- project:
name: gerrit
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: gerritbot
github-org: openstack-infra
@ -88,7 +42,6 @@
tarball-publisher-site: 173.203.107.207
jobs:
- gate-{name}-merge
- gate-{name}-pep8
- gate-{name}-pyflakes
- '{name}-sdist-tarball'
@ -104,7 +57,6 @@
tarball-publisher-site: nova.openstack.org
jobs:
- gate-{name}-merge
- gate-{name}-pep8
- gate-{name}-pyflakes
- '{name}-pypi-sdist'
@ -119,7 +71,6 @@
tarball-publisher-site: nova.openstack.org
jobs:
- gate-{name}-merge
- gate-{name}-pep8
- gate-{name}-pyflakes
- '{name}-pypi-sdist'
@ -131,7 +82,6 @@
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- gate-{name}-pep8
@ -217,7 +167,6 @@
tarball-publisher-site: nova.openstack.org
jobs:
- gate-{name}-merge
- gate-{name}-pep8
- gate-{name}-pyflakes
- '{name}-sdist-tarball'
@ -241,33 +190,6 @@
- translation-jobs
- project:
name: lodgeit
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: meetbot
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: MRaaS
github-org: stackforge
node: precise
jobs:
- gate-{name}-merge
- project:
name: netconn-api
github-org: openstack
@ -299,7 +221,6 @@
tarball-publisher-site: 173.203.107.207
jobs:
- gate-{name}-merge
- '{name}-sdist-tarball'
- '{name}-pypi-sdist'
- '{name}-pypi-upload'
@ -322,15 +243,6 @@
- translation-jobs
- project:
name: config
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: object-api
github-org: openstack
@ -356,46 +268,6 @@
- gate-{name}-pyflakes
- project:
name: openstack-nose
github-org: openstack-dev
node: precise
tarball-publisher-site: nova.openstack.org
doc-publisher-site: docs.openstack.org
jobs:
- gate-{name}-merge
- project:
name: openstack-chef
github-org: openstack
node: precise
tarball-publisher-site: nova.openstack.org
doc-publisher-site: docs.openstack.org
jobs:
- gate-{name}-merge
- project:
name: openstack-qa
github-org: openstack-dev
node: precise
jobs:
- gate-{name}-merge
- project:
name: openstack-planet
github-org: openstack
node: precise
jobs:
- gate-{name}-merge
- project:
name: pbr
github-org: openstack-dev
@ -408,33 +280,6 @@
- pypi-jobs
- project:
name: puppet-apparmor
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: puppet-dashboard
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: puppet-vcsrepo
github-org: openstack-infra
node: precise
jobs:
- gate-{name}-merge
- project:
name: python-ceilometerclient
github-org: openstack
@ -552,15 +397,6 @@
- python-jobs
- project:
name: reddwarf-integration
github-org: stackforge
node: precise
jobs:
- gate-{name}-merge
- project:
name: python-reddwarfclient
github-org: stackforge
@ -638,24 +474,6 @@
- hook-{name}-rtfd
- project:
name: requirements
github-org: openstack
node: precise
jobs:
- gate-{name}-merge
- project:
name: sandbox
github-org: openstack-dev
node: precise
jobs:
- gate-{name}-merge
- project:
name: swift
github-org: openstack
@ -677,28 +495,9 @@
node: precise
jobs:
- gate-{name}-merge
- gate-{name}-pep8
- project:
name: volume-api
github-org: openstack
node: precise
jobs:
- gate-{name}-merge
- project:
name: openstack-manuals
github-org: openstack
node: precise
jobs:
- gate-{name}-merge
- project:
name: zuul
github-org: openstack-infra
@ -713,14 +512,6 @@
- '{name}-pypi-upload'
- project:
name: openstack-qa
github-org: openstack-dev
node: precise
jobs:
- gate-{name}-merge
- project:
name: devstack-node-provider-rackspace
provider: rackspace

View File

@ -174,20 +174,6 @@
node: '{node}'
- job-template:
name: 'gate-{name}-merge'
triggers:
- zuul
builders:
- gerrit-git-prep
publishers:
- console-log
node: '{node}'
- job-template:
name: 'gate-{name}-docs'
@ -224,7 +210,6 @@
name: python-jobs
jobs:
- '{name}-coverage'
- 'gate-{name}-merge'
- 'gate-{name}-pep8'
- 'gate-{name}-python26'
- 'gate-{name}-python27'

File diff suppressed because it is too large Load Diff