Merge "Add support for maven jobs."

This commit is contained in:
Jenkins 2012-05-31 14:32:40 +00:00 committed by Gerrit Code Review
commit ef7003f931
4 changed files with 126 additions and 18 deletions

View File

@ -118,14 +118,25 @@ class XmlParser(object):
def _load_modules(self):
for modulename in self.data['modules']:
modulename = 'modules.{name}'.format(name=modulename)
self._register_module(modulename)
full_modulename = 'modules.{name}'.format(name=modulename)
is_project = modulename.startswith('project_')
module = self._register_module(full_modulename, is_project)
if is_project:
self.xml = module.gen_xml(self.xml)
def _register_module(self, modulename):
classname = modulename.rsplit('.', 1)[1]
module = __import__(modulename, fromlist=[classname])
def _register_module(self, modulename, skip=False):
class_and_alias = modulename.rsplit('.', 1)[1]
classname_split = class_and_alias.split(":")
classname = classname_split[0]
module = __import__(modulename.split(":")[0], fromlist=[classname])
cla = getattr(module, classname)
self.modules.append(cla(self.data))
if len(classname_split) > 1:
cla_instance = cla(self.data, classname_split[1])
else:
cla_instance = cla(self.data)
if not skip:
self.modules.append(cla_instance)
return cla_instance
def _build(self):
XML.SubElement(self.xml, 'actions')

View File

@ -22,12 +22,14 @@
import xml.etree.ElementTree as XML
class builders(object):
def __init__(self, data):
def __init__(self, data, alias='builders'):
self.data = data
self.alias = alias
def gen_xml(self, xml_parent):
builders = XML.SubElement(xml_parent, 'builders')
for builder in self.data['builders']:
builders = XML.SubElement(xml_parent, self.alias)
for builder in self.data[self.alias]:
getattr(self, '_' + builder)(builders)
def _add_script(self, xml_parent, script):
@ -53,6 +55,15 @@ class builders(object):
self._add_script(xml_parent,
'/usr/local/jenkins/slave_scripts/package-gerrit.sh')
def _gerrit_preclean(self, xml_parent):
self._add_script(xml_parent, "#!/bin/bash -xe\n\
rm -fr ~/.m2\n\
rm -fr ~/.java\n\
./tools/version.sh --release")
def _gerrit_postrun(self, xml_parent):
self._add_script(xml_parent, "./tools/version.sh --reset")
def _pep8(self, xml_parent):
self._add_script(xml_parent, 'tox -v -epep8 | tee pep8.txt')

View File

@ -0,0 +1,54 @@
#! /usr/bin/env python
# Copyright (C) 2012 OpenStack, LLC.
#
# 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.
# Jenkins Job module for maven projects
# To use you add the following into your YAML:
# maven:
# root_module:
# group_id: com.google.gerrit
# artifact_id: gerrit-parent
# goals: 'test'
import xml.etree.ElementTree as XML
class project_maven(object):
def __init__(self, data):
self.data = data
def gen_xml(self, xml_parent):
xml_parent = XML.Element('maven2-moduleset')
root_module = XML.SubElement(xml_parent, 'root_module')
XML.SubElement(root_module, 'groupId').text = self.data['maven']['root_module']['group_id']
XML.SubElement(root_module, 'artifactId').text = self.data['maven']['root_module']['artifact_id']
XML.SubElement(xml_parent, 'goals').text = self.data['maven']['goals']
XML.SubElement(xml_parent, 'aggregatorStyleBuild').text = 'true'
XML.SubElement(xml_parent, 'incrementalBuild').text = 'false'
XML.SubElement(xml_parent, 'perModuleEmail').text = 'true'
XML.SubElement(xml_parent, 'ignoreUpstremChanges').text = 'true'
XML.SubElement(xml_parent, 'archivingDisabled').text = 'false'
XML.SubElement(xml_parent, 'resolveDependencies').text = 'false'
XML.SubElement(xml_parent, 'processPlugins').text = 'false'
XML.SubElement(xml_parent, 'mavenValidationLevel').text = '-1'
XML.SubElement(xml_parent, 'runHeadless').text = 'false'
XML.SubElement(xml_parent, 'settingConfigId')
XML.SubElement(xml_parent, 'globalSettingConfigId')
run_post_steps = XML.SubElement(xml_parent, 'runPostStepsIfResult')
XML.SubElement(run_post_steps, 'name').text = 'FAILURE'
XML.SubElement(run_post_steps, 'ordinal').text = '2'
XML.SubElement(run_post_steps, 'color').text = 'red'
return xml_parent

View File

@ -82,11 +82,12 @@ assignednode:
---
# check-gerrit-unittests
modules:
- project_maven
- properties
- scm
- assignednode
- trigger_gerrit
- builders
- builders:prebuilders
- publisher_war
main:
@ -112,9 +113,18 @@ trigger:
branchCompareType: 'ANT'
branchPattern: '**'
builders:
prebuilders:
- gerrit_git_prep
- gerrit_package
- gerrit_preclean
maven:
root_module:
group_id: com.google.gerrit
artifact_id: gerrit-parent
goals: 'clean package -Dgerrit.include-documentation=1 -X'
postbuilders:
- gerrit_postrun
scm:
scm: 'true'
@ -130,11 +140,13 @@ publisher:
---
# gate-gerrit-unittests
modules:
- project_maven
- properties
- scm
- assignednode
- trigger_gerrit
- builders
- builders:prebuilders
- builders:postbuilders
- publisher_none
main:
@ -159,9 +171,18 @@ trigger:
branchCompareType: 'ANT'
branchPattern: '**'
builders:
prebuilders:
- gerrit_git_prep
- gerrit_package
- gerrit_preclean
maven:
root_module:
group_id: com.google.gerrit
artifact_id: gerrit-parent
goals: 'clean package -Dgerrit.include-documentation=1 -X'
postbuilders:
- gerrit_postrun
scm:
scm: 'true'
@ -172,11 +193,13 @@ assignednode:
---
# gerrit-package
modules:
- project_maven
- properties
- scm
- assignednode
- trigger_gerrit
- builders
- builders:prebuilders
- builders:postbuilders
- publisher_war
main:
@ -201,9 +224,18 @@ trigger:
branchCompareType: 'REG_EXP'
branchPattern: '^(?!refs/).*$'
builders:
prebuilders:
- gerrit_git_prep
- gerrit_package
- gerrit_preclean
maven:
root_module:
group_id: com.google.gerrit
artifact_id: gerrit-parent
goals: 'clean package -Dgerrit.include-documentation=1 -X'
postbuilders:
- gerrit_postrun
scm:
scm: 'true'