Arnaud Fabre a164f01f4a Add Sonar Plugin support.
The Sonar Plugin provides both a builder and a publisher,
the later targeting Maven projects.

This commit adds support for the publisher, which is straightforward
to configure: no option is required, the plugin finds suitable
defaults by itself.

Several parameters can be provided though, which are transferred
as is to either Sonar or Maven. Analysis can also be skipped under
certain conditions.

Change-Id: I30744d0961d623cabf7c0780ab2f0d4db2cd9295
Reviewed-on: https://review.openstack.org/25073
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Tested-by: Jenkins
2013-03-25 10:19:08 +00:00

163 lines
7.7 KiB
Python

# Copyright 2012 Hewlett-Packard Development Company, L.P.
#
# 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.
import setuptools
from jenkins_jobs.openstack.common import setup
from jenkins_jobs.version import version_info as version
requires = setup.parse_requirements()
test_requires = setup.parse_requirements(['tools/test-requires'])
depend_links = setup.parse_dependency_links()
setuptools.setup(
name='jenkins-job-builder',
version=version.canonical_version_string(always=True),
author='Hewlett-Packard Development Company, L.P.',
author_email='openstack@lists.launchpad.net',
description='Manage Jenkins jobs with YAML',
license='Apache License, Version 2.0',
url='https://github.com/openstack-ci/jenkins-job-builder',
packages=setuptools.find_packages(exclude=['tests', 'tests.*']),
include_package_data=True,
cmdclass=setup.get_cmdclass(),
install_requires=requires,
dependency_links=depend_links,
zip_safe=False,
classifiers=[
'Environment :: Console',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'License :: OSI Approved :: Apache Software License',
'Operating System :: OS Independent',
'Programming Language :: Python'
],
entry_points={
'console_scripts': [
'jenkins-jobs=jenkins_jobs.cmd:main',
],
'jenkins_jobs.projects': [
'freestyle=jenkins_jobs.modules.project_freestyle:Freestyle',
'maven=jenkins_jobs.modules.project_maven:Maven',
'matrix=jenkins_jobs.modules.project_matrix:Matrix',
],
'jenkins_jobs.builders': [
'shell=jenkins_jobs.modules.builders:shell',
'ant=jenkins_jobs.modules.builders:ant',
'trigger-builds=jenkins_jobs.modules.builders:trigger_builds',
'builders-from=jenkins_jobs.modules.builders:builders_from',
'inject=jenkins_jobs.modules.builders:inject',
'artifact-resolver=jenkins_jobs.modules.builders:'
'artifact_resolver',
'copyartifact=jenkins_jobs.modules.builders:copyartifact',
'gradle=jenkins_jobs.modules.builders:gradle',
'batch=jenkins_jobs.modules.builders:batch',
],
'jenkins_jobs.reporters': [
'email=jenkins_jobs.modules.reporters:email',
],
'jenkins_jobs.properties': [
'github=jenkins_jobs.modules.properties:github',
'throttle=jenkins_jobs.modules.properties:throttle',
'inject=jenkins_jobs.modules.properties:inject',
'authenticated-build=jenkins_jobs.modules.properties:'
'authenticated_build',
'authorization=jenkins_jobs.modules.properties:authorization',
'extended-choice=jenkins_jobs.modules.properties:extended_choice',
],
'jenkins_jobs.parameters': [
'string=jenkins_jobs.modules.parameters:string_param',
'bool=jenkins_jobs.modules.parameters:bool_param',
'file=jenkins_jobs.modules.parameters:file_param',
'text=jenkins_jobs.modules.parameters:text_param',
'label=jenkins_jobs.modules.parameters:label_param',
'choice=jenkins_jobs.modules.parameters:choice_param',
'validating-string=jenkins_jobs.modules.parameters:'
'validating_string_param',
'svn-tags=jenkins_jobs.modules.parameters:svn_tags_param',
],
'jenkins_jobs.notifications': [
'http=jenkins_jobs.modules.notifications:http_endpoint',
],
'jenkins_jobs.publishers': [
'archive=jenkins_jobs.modules.publishers:archive',
'trigger-parameterized-builds='
'jenkins_jobs.modules.publishers:trigger_parameterized_builds',
'trigger=jenkins_jobs.modules.publishers:trigger',
'coverage=jenkins_jobs.modules.publishers:coverage',
'ftp=jenkins_jobs.modules.publishers:ftp',
'junit=jenkins_jobs.modules.publishers:junit',
'xunit=jenkins_jobs.modules.publishers:xunit',
'groovy-postbuild=jenkins_jobs.modules.publishers:'
'groovy_postbuild',
'violations=jenkins_jobs.modules.publishers:violations',
'checkstyle=jenkins_jobs.modules.publishers:checkstyle',
'scp=jenkins_jobs.modules.publishers:scp',
'pipeline=jenkins_jobs.modules.publishers:pipeline',
'email=jenkins_jobs.modules.publishers:email',
'claim-build=jenkins_jobs.modules.publishers:claim_build',
'email-ext=jenkins_jobs.modules.publishers:email_ext',
'fingerprint=jenkins_jobs.modules.publishers:fingerprint',
'aggregate-tests=jenkins_jobs.modules.publishers:aggregate_tests',
'cppcheck=jenkins_jobs.modules.publishers:cppcheck',
'logparser=jenkins_jobs.modules.publishers:logparser',
'copy-to-master=jenkins_jobs.modules.publishers:copy_to_master',
'jira=jenkins_jobs.modules.publishers:jira',
'cifs=jenkins_jobs.modules.publishers:cifs',
'sonar=jenkins_jobs.modules.publishers:sonar',
],
'jenkins_jobs.scm': [
'git=jenkins_jobs.modules.scm:git',
'svn=jenkins_jobs.modules.scm:svn',
],
'jenkins_jobs.triggers': [
'gerrit=jenkins_jobs.modules.triggers:gerrit',
'pollscm=jenkins_jobs.modules.triggers:pollscm',
'timed=jenkins_jobs.modules.triggers:timed',
'github=jenkins_jobs.modules.triggers:github',
'github-pull-request=jenkins_jobs.modules.triggers:'
'github_pull_request',
],
'jenkins_jobs.wrappers': [
'timeout=jenkins_jobs.modules.wrappers:timeout',
'timestamps=jenkins_jobs.modules.wrappers:timestamps',
'ansicolor=jenkins_jobs.modules.wrappers:ansicolor',
'mask-passwords=jenkins_jobs.modules.wrappers:mask_passwords',
'build-name=jenkins_jobs.modules.wrappers:build_name',
'workspace-cleanup=jenkins_jobs.modules.wrappers:'
'workspace_cleanup',
'port-allocator=jenkins_jobs.modules.wrappers:port_allocator',
'locks=jenkins_jobs.modules.wrappers:locks',
'copy-to-slave=jenkins_jobs.modules.wrappers:copy_to_slave',
'inject=jenkins_jobs.modules.wrappers:inject',
'jclouds=jenkins_jobs.modules.wrappers:jclouds',
],
'jenkins_jobs.modules': [
'general=jenkins_jobs.modules.general:General',
'builders=jenkins_jobs.modules.builders:Builders',
'properties=jenkins_jobs.modules.properties:Properties',
'parameters=jenkins_jobs.modules.parameters:Parameters',
'notifications=jenkins_jobs.modules.notifications:Notifications',
'publishers=jenkins_jobs.modules.publishers:Publishers',
'reporters=jenkins_jobs.modules.reporters:Reporters',
'scm=jenkins_jobs.modules.scm:SCM',
'triggers=jenkins_jobs.modules.triggers:Triggers',
'wrappers=jenkins_jobs.modules.wrappers:Wrappers',
'zuul=jenkins_jobs.modules.zuul:Zuul',
'hipchat=jenkins_jobs.modules.hipchat_notif:HipChat',
]
}
)