Merge "Add support for maven jobs."
This commit is contained in:
commit
ef7003f931
@ -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')
|
||||
|
@ -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')
|
||||
|
||||
|
54
modules/jenkins_jobs/files/modules/project_maven.py
Normal file
54
modules/jenkins_jobs/files/modules/project_maven.py
Normal 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
|
@ -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'
|
||||
|
Loading…
x
Reference in New Issue
Block a user