Convert all inline publisher examples to tests

Convert all publisher examples to unit tests and use literalinclude to
have sphinx automatically inline the test file contents. Replace
mavendeploy test with more complete version from the code and include
some tests from files that were identical to the inline example.

Enable yaml syntax highlighting for existing examples for consistent
display of docstrings across the publishers module.

In turn fix any python 3 compatibility issues highlighted by the
additional tests executing previously unexercised code paths.

Change-Id: Ic0fd39dee0121c0c22a932fd455dccc5344893b2
This commit is contained in:
Darragh Bailey 2015-03-20 01:03:00 +00:00
parent f14589b14d
commit 09c0224fb2
60 changed files with 1183 additions and 376 deletions

View File

@ -52,7 +52,7 @@ def archive(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/archive001.yaml
:language: yaml
"""
logger = logging.getLogger("%s:archive" % __name__)
archiver = XML.SubElement(xml_parent, 'hudson.tasks.ArtifactArchiver')
@ -92,7 +92,7 @@ def blame_upstream(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/blame001.yaml
:language: yaml
"""
XML.SubElement(xml_parent,
@ -117,7 +117,7 @@ def campfire(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/campfire001.yaml
:language: yaml
"""
root = XML.SubElement(xml_parent,
@ -153,6 +153,7 @@ def emotional_jenkins(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/emotional-jenkins.yaml
:language: yaml
"""
XML.SubElement(xml_parent,
'org.jenkinsci.plugins.emotional__jenkins.'
@ -194,8 +195,8 @@ def trigger_parameterized_builds(parser, xml_parent, data):
Example:
.. literalinclude::
/../../tests/publishers/fixtures/trigger_parameterized_builds001.yaml
/../../tests/publishers/fixtures/trigger_parameterized_builds001.yaml
:language: yaml
"""
tbuilder = XML.SubElement(xml_parent,
'hudson.plugins.parameterizedtrigger.'
@ -294,6 +295,7 @@ def trigger(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/trigger_success.yaml
:language: yaml
"""
tconfig = XML.SubElement(xml_parent, 'hudson.tasks.BuildTrigger')
childProjects = XML.SubElement(tconfig, 'childProjects')
@ -332,13 +334,14 @@ def clone_workspace(parser, xml_parent, data):
Minimal example:
.. literalinclude::
/../../tests/publishers/fixtures/clone-workspace001.yaml
/../../tests/publishers/fixtures/clone-workspace001.yaml
:language: yaml
Full example:
.. literalinclude::
/../../tests/publishers/fixtures/clone-workspace002.yaml
/../../tests/publishers/fixtures/clone-workspace002.yaml
:language: yaml
"""
cloneworkspace = XML.SubElement(
@ -417,12 +420,13 @@ def cloverphp(parser, xml_parent, data):
Minimal example:
.. literalinclude:: /../../tests/publishers/fixtures/cloverphp001.yaml
.. literalinclude:: /../../tests/publishers/fixtures/cloverphp001.yaml
:language: yaml
Full example:
.. literalinclude:: /../../tests/publishers/fixtures/cloverphp002.yaml
.. literalinclude:: /../../tests/publishers/fixtures/cloverphp002.yaml
:language: yaml
"""
cloverphp = XML.SubElement(
xml_parent,
@ -496,10 +500,10 @@ def coverage(parser, xml_parent, data):
Requires the Jenkins :jenkins-wiki:`Cobertura Coverage Plugin
<Cobertura+Plugin>`.
Example::
Example:
publishers:
- coverage
.. literalinclude:: /../../tests/publishers/fixtures/coverage001.yaml
:language: yaml
"""
logger = logging.getLogger(__name__)
logger.warn("Coverage function is deprecated. Switch to cobertura.")
@ -589,30 +593,10 @@ def cobertura(parser, xml_parent, data):
* **unhealthy** (`int`): Unhealthy threshold (default 0)
* **failing** (`int`): Failing threshold (default 0)
Example::
publishers:
- cobertura:
report-file: "/reports/cobertura/coverage.xml"
only-stable: "true"
fail-no-reports: "true"
fail-unhealthy: "true"
fail-unstable: "true"
health-auto-update: "true"
stability-auto-update: "true"
zoom-coverage-chart: "true"
source-encoding: "Big5"
targets:
- files:
healthy: 10
unhealthy: 20
failing: 30
- method:
healthy: 50
unhealthy: 40
failing: 30
Example:
.. literalinclude:: /../../tests/publishers/fixtures/cobertura001.yaml
:language: yaml
"""
cobertura = XML.SubElement(xml_parent,
'hudson.plugins.cobertura.CoberturaPublisher')
@ -637,7 +621,7 @@ def cobertura(parser, xml_parent, data):
'class': 'enum-map',
'enum-type': 'hudson.plugins.cobertura.targets.CoverageMetric'})
for item in data['targets']:
item_name = item.keys()[0]
item_name = next(iter(item.keys()))
item_values = item.get(item_name, 0)
entry = XML.SubElement(targets, 'entry')
XML.SubElement(entry,
@ -649,7 +633,7 @@ def cobertura(parser, xml_parent, data):
'class': 'enum-map',
'enum-type': 'hudson.plugins.cobertura.targets.CoverageMetric'})
for item in data['targets']:
item_name = item.keys()[0]
item_name = next(iter(item.keys()))
item_values = item.get(item_name, 0)
entry = XML.SubElement(targets, 'entry')
XML.SubElement(entry, 'hudson.plugins.cobertura.targets.'
@ -661,7 +645,7 @@ def cobertura(parser, xml_parent, data):
'class': 'enum-map',
'enum-type': 'hudson.plugins.cobertura.targets.CoverageMetric'})
for item in data['targets']:
item_name = item.keys()[0]
item_name = next(iter(item.keys()))
item_values = item.get(item_name, 0)
entry = XML.SubElement(targets, 'entry')
XML.SubElement(entry, 'hudson.plugins.cobertura.targets.'
@ -696,22 +680,10 @@ def jacoco(parser, xml_parent, data):
* **healthy** (`int`): Healthy threshold (default 0)
* **unhealthy** (`int`): Unhealthy threshold (default 0)
Example::
publishers:
- jacoco:
exec-pattern: "**/**.exec"
class-pattern: "**/classes"
source-pattern: "**/src/main/java"
status-update: true
targets:
- branch:
healthy: 10
unhealthy: 20
- method:
healthy: 50
unhealthy: 40
Example:
.. literalinclude:: /../../tests/publishers/fixtures/jacoco001.yaml
:language: yaml
"""
jacoco = XML.SubElement(xml_parent,
@ -737,7 +709,7 @@ def jacoco(parser, xml_parent, data):
'class']
for item in data['targets']:
item_name = item.keys()[0]
item_name = next(iter(item.keys()))
if item_name not in itemsList:
raise JenkinsJobsException("item entered is not valid must be "
"one of: %s" % ",".join(itemsList))
@ -812,11 +784,12 @@ def junit(parser, xml_parent, data):
Minimal example using defaults:
.. literalinclude:: /../../tests/publishers/fixtures/junit001.yaml
:language: yaml
Full example:
.. literalinclude:: /../../tests/publishers/fixtures/junit002.yaml
:language: yaml
"""
junitresult = XML.SubElement(xml_parent,
'hudson.tasks.junit.JUnitResultArchiver')
@ -1015,15 +988,10 @@ def violations(parser, xml_parent, data):
gendarme, jcreport, jslint, pep8, perlcritic, pmd, pylint,
simian, stylecop
Example::
Example:
publishers:
- violations:
pep8:
min: 0
max: 1
unstable: 1
pattern: '**/pep8.txt'
.. literalinclude:: /../../tests/publishers/fixtures/violations001.yaml
:language: yaml
"""
violations = XML.SubElement(xml_parent,
'hudson.plugins.violations.'
@ -1115,11 +1083,12 @@ def checkstyle(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/checkstyle004.yaml
:language: yaml
Full example:
.. literalinclude:: /../../tests/publishers/fixtures/checkstyle006.yaml
:language: yaml
"""
def convert_settings(lookup, data):
"""Helper to convert settings from one key to another
@ -1198,7 +1167,7 @@ def scp(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/scp001.yaml
:language: yaml
"""
site = data['site']
scp = XML.SubElement(xml_parent,
@ -1252,7 +1221,6 @@ def ssh(parser, xml_parent, data):
.. literalinclude:: /../../tests/publishers/fixtures/ssh001.yaml
:language: yaml
"""
console_prefix = 'SSH: '
plugin_tag = 'jenkins.plugins.publish__over__ssh.BapSshPublisherPlugin'
@ -1284,6 +1252,7 @@ def pipeline(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/pipeline002.yaml
:language: yaml
You can build pipeline jobs that are re-usable in different pipelines by
@ -1352,10 +1321,10 @@ def claim_build(parser, xml_parent, data):
Claim build failures
Requires the Jenkins :jenkins-wiki:`Claim Plugin <Claim+plugin>`.
Example::
Example:
publishers:
- claim-build
.. literalinclude:: /../../tests/publishers/fixtures/claim-build001.yaml
:language: yaml
"""
XML.SubElement(xml_parent, 'hudson.plugins.claim.ClaimPublisher')
@ -1443,6 +1412,7 @@ def email_ext(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/email-ext001.yaml
:language: yaml
"""
emailext = XML.SubElement(xml_parent,
@ -1529,12 +1499,10 @@ def fingerprint(parser, xml_parent, data):
:arg bool record-artifacts: fingerprint all archived artifacts
(default false)
Example::
Example:
publishers:
- fingerprint:
files: builddir/test*.xml
record-artifacts: false
.. literalinclude:: /../../tests/publishers/fixtures/fingerprint001.yaml
:language: yaml
"""
finger = XML.SubElement(xml_parent, 'hudson.tasks.Fingerprinter')
XML.SubElement(finger, 'targets').text = data.get('files', '')
@ -1548,11 +1516,11 @@ def aggregate_tests(parser, xml_parent, data):
:arg bool include-failed-builds: whether to include failed builds
Example::
Example:
publishers:
- aggregate-tests:
include-failed-builds: true
.. literalinclude::
/../../tests/publishers/fixtures/aggregate-tests001.yaml
:language: yaml
"""
agg = XML.SubElement(xml_parent,
'hudson.tasks.test.AggregatedTestResultPublisher')
@ -1588,29 +1556,10 @@ def cppcheck(parser, xml_parent, data):
for more optional parameters see the example
Example::
Example:
publishers:
- cppcheck:
pattern: "**/cppcheck.xml"
# the rest is optional
# build status (new) error count thresholds
thresholds:
unstable: 5
new-unstable: 5
failure: 7
new-failure: 3
# severities which count towards the threshold, default all true
severity:
error: true
warning: true
information: false
graph:
xysize: [500, 200]
# which errors to display, default only sum
display:
sum: false
error: true
.. literalinclude:: /../../tests/publishers/fixtures/cppcheck001.yaml
:language: yaml
"""
cppextbase = XML.SubElement(xml_parent,
'org.jenkinsci.plugins.cppcheck.'
@ -1672,13 +1621,10 @@ def logparser(parser, xml_parent, data):
:arg bool unstable-on-warning: mark build unstable on warning
:arg bool fail-on-error: mark build failed on error
Example::
Example:
publishers:
- logparser:
parse-rules: "/path/to/parserules"
unstable-on-warning: true
fail-on-error: true
.. literalinclude:: /../../tests/publishers/fixtures/logparser001.yaml
:language: yaml
"""
clog = XML.SubElement(xml_parent,
@ -1703,15 +1649,11 @@ def copy_to_master(parser, xml_parent, data):
If left blank they will be copied into the
workspace of the current job
Example::
Example:
publishers:
- copy-to-master:
includes:
- file1
- file2*.txt
excludes:
- file2bad.txt
.. literalinclude::
/../../tests/publishers/fixtures/copy-to-master001.yaml
:language: yaml
"""
p = 'com.michelin.cio.hudson.plugins.copytoslave.CopyToMasterNotifier'
cm = XML.SubElement(xml_parent, p)
@ -1731,10 +1673,10 @@ def jira(parser, xml_parent, data):
Update relevant JIRA issues
Requires the Jenkins :jenkins-wiki:`JIRA Plugin <JIRA+Plugin>`.
Example::
Example:
publishers:
- jira
.. literalinclude:: /../../tests/publishers/fixtures/jira001.yaml
:language: yaml
"""
XML.SubElement(xml_parent, 'hudson.plugins.jira.JiraIssueUpdater')
@ -1747,11 +1689,11 @@ def groovy_postbuild(parser, xml_parent, data):
:Parameter: the groovy script to execute
Example::
publishers:
- groovy-postbuild: "manager.buildFailure()"
Example:
.. literalinclude::
/../../tests/publishers/fixtures/groovy-postbuild001.yaml
:language: yaml
"""
root_tag = 'org.jvnet.hudson.plugins.groovypostbuild.'\
'GroovyPostbuildRecorder'
@ -1855,6 +1797,7 @@ def cigame(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/cigame.yaml
:language: yaml
"""
XML.SubElement(xml_parent, 'hudson.plugins.cigame.GamePublisher')
@ -1881,19 +1824,10 @@ def sonar(parser, xml_parent, data):
This publisher supports the post-build action exposed by the Jenkins
Sonar Plugin, which is triggering a Sonar Analysis with Maven.
Example::
Example:
publishers:
- sonar:
jdk: MyJdk
branch: myBranch
language: java
maven-opts: -DskipTests
additional-properties: -DsonarHostURL=http://example.com/
skip-global-triggers:
skip-when-scm-change: true
skip-when-upstream-build: true
skip-when-envvar-defined: SKIP_SONAR
.. literalinclude:: /../../tests/publishers/fixtures/sonar001.yaml
:language: yaml
"""
sonar = XML.SubElement(xml_parent, 'hudson.plugins.sonar.SonarPublisher')
if 'jdk' in data:
@ -1931,33 +1865,16 @@ def performance(parser, xml_parent, data):
:(jmeter or junit): (`dict` or `str`): Specify a custom report file
(optional; jmeter default \**/*.jtl, junit default **/TEST-\*.xml)
Examples::
Examples:
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter: "/special/file.jtl"
- junit: "/special/file.xml"
.. literalinclude:: /../../tests/publishers/fixtures/performance001.yaml
:language: yaml
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter
- junit
.. literalinclude:: /../../tests/publishers/fixtures/performance002.yaml
:language: yaml
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter: "/special/file.jtl"
- junit: "/special/file.xml"
- jmeter
- junit
.. literalinclude:: /../../tests/publishers/fixtures/performance003.yaml
:language: yaml
"""
logger = logging.getLogger(__name__)
@ -1970,7 +1887,7 @@ def performance(parser, xml_parent, data):
parsers = XML.SubElement(perf, 'parsers')
for item in data['report']:
if isinstance(item, dict):
item_name = item.keys()[0]
item_name = next(iter(item.keys()))
item_values = item.get(item_name, None)
if item_name == 'jmeter':
jmhold = XML.SubElement(parsers, 'hudson.plugins.performance.'
@ -2005,13 +1922,10 @@ def join_trigger(parser, xml_parent, data):
:arg list projects: list of projects to trigger
Example::
Example:
publishers:
- join-trigger:
projects:
- project-one
- project-two
.. literalinclude:: /../../tests/publishers/fixtures/join-trigger001.yaml
:language: yaml
"""
jointrigger = XML.SubElement(xml_parent, 'join.JoinTrigger')
@ -2054,17 +1968,10 @@ def jabber(parser, xml_parent, data):
* **summary-build** -- Summary and build parameters
* **summary-scm-fail** -- Summary, SCM changes, and failed tests
Example::
Example:
publishers:
- jabber:
notify-on-build-start: true
group-targets:
- "foo-room@conference-2-fooserver.foo.com"
individual-targets:
- "foo-user@conference-2-fooserver.foo.com"
strategy: all
message: summary-scm
.. literalinclude:: /../../tests/publishers/fixtures/jabber001.yaml
:language: yaml
"""
j = XML.SubElement(xml_parent, 'hudson.plugins.jabber.im.transport.'
'JabberPublisher')
@ -2136,15 +2043,11 @@ def workspace_cleanup(parser, xml_parent, data):
:arg bool fail-build: Fail the build if the cleanup fails (default: true)
:arg bool clean-parent: Cleanup matrix parent workspace (default: false)
Example::
Example:
publishers:
- workspace-cleanup:
include:
- "*.zip"
clean-if:
- success: true
- not-built: false
.. literalinclude::
/../../tests/publishers/fixtures/workspace-cleanup001.yaml
:language: yaml
"""
p = XML.SubElement(xml_parent,
@ -2168,14 +2071,16 @@ def workspace_cleanup(parser, xml_parent, data):
XML.SubElement(p, 'cleanupMatrixParent').text = \
str(data.get("clean-parent", False)).lower()
mask = {'success': 'cleanWhenSuccess', 'unstable': 'cleanWhenUnstable',
'failure': 'cleanWhenFailure', 'not-built': 'cleanWhenNotBuilt',
'aborted': 'cleanWhenAborted'}
mask = [('success', 'cleanWhenSuccess'),
('unstable', 'cleanWhenUnstable'),
('failure', 'cleanWhenFailure'),
('not-built', 'cleanWhenNotBuilt'),
('aborted', 'cleanWhenAborted')]
clean = data.get('clean-if', [])
cdict = dict()
for d in clean:
cdict.update(d)
for k, v in mask.iteritems():
for k, v in mask:
XML.SubElement(p, v).text = str(cdict.pop(k, True)).lower()
if len(cdict) > 0:
@ -2199,14 +2104,10 @@ def maven_deploy(parser, xml_parent, data):
(default false)
Example::
Example:
publishers:
- maven-deploy:
id: example
url: http://repo.example.com/maven2/
unique-version: true
deploy-unstable: false
.. literalinclude:: /../../tests/publishers/fixtures/maven-deploy001.yaml
:language: yaml
"""
p = XML.SubElement(xml_parent, 'hudson.maven.RedeployPublisher')
@ -2238,15 +2139,10 @@ def text_finder(parser, xml_parent, data):
Set build unstable instead of failing the build (default False)
Example::
Example:
publishers:
- text-finder:
regexp: "some string"
fileset: "file.txt"
also-check-console-output: true
succeed-if-found: false
unstable-if-found: false
.. literalinclude:: /../../tests/publishers/fixtures/text-finder001.yaml
:language: yaml
"""
finder = XML.SubElement(xml_parent,
@ -2276,15 +2172,10 @@ def html_publisher(parser, xml_parent, data):
:arg bool allow-missing: Allow missing HTML reports (Default False)
Example::
Example:
publishers:
- html-publisher:
name: "some name"
dir: "path/"
files: "index.html"
keep-all: true
allow-missing: true
.. literalinclude:: /../../tests/publishers/fixtures/html-publisher001.yaml
:language: yaml
"""
reporter = XML.SubElement(xml_parent, 'htmlpublisher.HtmlPublisher')
@ -2358,12 +2249,10 @@ def tap(parser, xml_parent, data):
:arg bool todo-is-failure: Handle TODO's as failures (Default True)
Example::
Example:
publishers:
- tap:
results: puiparts.tap
todo-is-failure: false
.. literalinclude:: /../../tests/publishers/fixtures/tap001.yaml
:language: yaml
"""
tap = XML.SubElement(xml_parent, 'org.tap4j.plugin.TapPublisher')
@ -2412,21 +2301,10 @@ def post_tasks(parser, xml_parent, data):
(default 'false')
:arg str task[script]: Shell script to run (default '')
Example::
Example:
publishers:
- post-tasks:
- matches:
- log-text: line to match
operator: AND
- log-text: line to match
operator: OR
- log-text: line to match
operator: AND
escalate-status: false
run-if-job-successful:false
script: |
echo "Here goes the task script"
.. literalinclude:: /../../tests/publishers/fixtures/post-tasks001.yaml
:language: yaml
"""
pb_xml = XML.SubElement(xml_parent,
@ -2482,19 +2360,21 @@ def postbuildscript(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/\
postbuildscript001.yaml
.. literalinclude::
/../../tests/publishers/fixtures/postbuildscript001.yaml
:language: yaml
You can also execute :doc:`builders </builders>`:
.. literalinclude:: /../../tests/publishers/fixtures/\
postbuildscript002.yaml
.. literalinclude::
/../../tests/publishers/fixtures/postbuildscript002.yaml
:language: yaml
Run once after the whole matrix (all axes) is built:
.. literalinclude:: /../../tests/publishers/fixtures/\
postbuildscript003.yaml
.. literalinclude::
/../../tests/publishers/fixtures/postbuildscript003.yaml
:language: yaml
"""
pbs_xml = XML.SubElement(
@ -2586,11 +2466,10 @@ def xml_summary(parser, xml_parent, data):
:arg str files: Files to parse (default '')
Example::
Example:
publishers:
- xml-summary:
files: '*_summary_report.xml'
.. literalinclude:: /../../tests/publishers/fixtures/xml-summary001.yaml
:language: yaml
"""
summary = XML.SubElement(xml_parent,
@ -2624,21 +2503,10 @@ def robot(parser, xml_parent, data):
checking the thresholds (default true)
:arg list other-files: list other files to archive (default '')
Example::
Example:
- publishers:
- robot:
output-path: reports/robot
log-file-link: report.html
report-html: report.html
log-html: log.html
output-xml: output.xml
pass-threshold: 80.0
unstable-threshold: 60.0
only-critical: false
other-files:
- extra-file1.html
- extra-file2.txt
.. literalinclude:: /../../tests/publishers/fixtures/robot001.yaml
:language: yaml
"""
parent = XML.SubElement(xml_parent, 'hudson.plugins.robot.RobotPublisher')
XML.SubElement(parent, 'outputPath').text = data['output-path']
@ -2756,51 +2624,10 @@ def warnings(parser, xml_parent, data):
:arg str default-encoding: Default encoding when parsing or showing files
Leave empty to use default encoding of platform (default '')
Example::
Example:
publishers:
- warnings:
console-log-parsers:
- FxCop
- CodeAnalysis
workspace-file-scanners:
- file-pattern: '**/*.out'
scanner: 'AcuCobol Compiler'
- file-pattern: '**/*.warnings'
scanner: FxCop
files-to-include: '[a-zA-Z]\.java,[a-zA-Z]\.cpp'
files-to-ignore: '[a-zA-Z]\.html,[a-zA-Z]\.js'
run-always: true
detect-modules: true
resolve-relative-paths: true
health-threshold-high: 50
health-threshold-low: 25
health-priorities: high-and-normal
total-thresholds:
unstable:
total-all: 90
total-high: 90
total-normal: 40
total-low: 30
failed:
total-all: 100
total-high: 100
total-normal: 50
total-low: 40
new-thresholds:
unstable:
new-all: 100
new-high: 50
new-normal: 30
new-low: 10
failed:
new-all: 100
new-high: 60
new-normal: 50
new-low: 40
use-delta-for-new-warnings: true
only-use-stable-builds-as-reference: true
default-encoding: ISO-8859-9
.. literalinclude:: /../../tests/publishers/fixtures/warnings001.yaml
:language: yaml
"""
warnings = XML.SubElement(xml_parent,
@ -2887,13 +2714,10 @@ def sloccount(parser, xml_parent, data):
:arg str charset: The character encoding to be used to read the SLOCCount
result files. (default: 'UTF-8')
Example::
publishers:
- sloccount:
report-files: sloccount.sc
charset: UTF-8
Example:
.. literalinclude:: /../../tests/publishers/fixtures/sloccount001.yaml
:language: yaml
"""
top = XML.SubElement(xml_parent,
'hudson.plugins.sloccount.SloccountPublisher')
@ -2964,6 +2788,7 @@ def ircbot(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/ircbot001.yaml
:language: yaml
"""
top = XML.SubElement(xml_parent, 'hudson.plugins.ircbot.IrcPublisher')
message_dict = {'summary-scm': 'DefaultBuildToChatNotifier',
@ -3079,37 +2904,10 @@ def plot(parser, xml_parent, data):
Xpath which selects the values that should be plotted.
Example::
publishers:
- plot:
- title: MyPlot
yaxis: Y
group: PlotGroup
num-builds: ''
style: line
use-description: false
series:
- file: graph-me-second.properties
label: MyLabel
format: properties
- file: graph-me-first.csv
url: 'http://srv1'
inclusion-flag: 'off'
display-table: true
format: csv
- title: MyPlot2
yaxis: Y
group: PlotGroup
style: line
use-description: false
series:
- file: graph-me-third.xml
url: 'http://srv2'
format: xml
xpath-type: 'node'
xpath: '/*'
Example:
.. literalinclude:: /../../tests/publishers/fixtures/plot004.yaml
:language: yaml
"""
top = XML.SubElement(xml_parent, 'hudson.plugins.plot.PlotPublisher')
plots = XML.SubElement(top, 'plots')
@ -3222,30 +3020,10 @@ def git(parser, xml_parent, data):
(Default: False)
Example::
publishers:
- git:
push-merge: true
push-only-if-success: false
tags:
- tag:
remote: tagremotename
name: tagname
message: "some tag message"
create-tag: true
update-tag: true
branches:
- branch:
remote: branchremotename
name: "some/branch"
notes:
- note:
remote: remotename
message: "some note to push"
namespace: commits
replace-note: true
Example:
.. literalinclude:: /../../tests/publishers/fixtures/git001.yaml
:language: yaml
"""
mappings = [('push-merge', 'pushMerge', False),
('push-only-if-success', 'pushOnlyIfSuccess', True)]
@ -3315,6 +3093,7 @@ def github_notifier(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/github-notifier.yaml
:language: yaml
"""
XML.SubElement(xml_parent,
'com.cloudbees.jenkins.GitHubCommitNotifier')
@ -3337,7 +3116,8 @@ def build_publisher(parser, xml_parent, data):
Example:
.. literalinclude::
/../../tests/publishers/fixtures/build-publisher002.yaml
/../../tests/publishers/fixtures/build-publisher002.yaml
:language: yaml
"""
reporter = XML.SubElement(
@ -3380,6 +3160,7 @@ def stash(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/stash001.yaml
:language: yaml
"""
top = XML.SubElement(xml_parent,
@ -3415,8 +3196,8 @@ def description_setter(parser, xml_parent, data):
Example:
.. literalinclude::
/../../tests/publishers/fixtures/description-setter001.yaml
/../../tests/publishers/fixtures/description-setter001.yaml
:language: yaml
"""
descriptionsetter = XML.SubElement(
@ -3450,7 +3231,7 @@ def doxygen(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/doxygen001.yaml
:language: yaml
"""
p = XML.SubElement(xml_parent, 'hudson.plugins.doxygen.DoxygenArchiver')
if not data['doxyfile']:
@ -3472,7 +3253,7 @@ def sitemonitor(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/sitemonitor001.yaml
:language: yaml
"""
mon = XML.SubElement(xml_parent,
'hudson.plugins.sitemonitor.SiteMonitorRecorder')
@ -3500,7 +3281,7 @@ def testng(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/testng001.yaml
:language: yaml
"""
reporter = XML.SubElement(xml_parent, 'hudson.plugins.testng.Publisher')
@ -3542,7 +3323,7 @@ def artifact_deployer(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/artifact-dep.yaml
:language: yaml
"""
deployer = XML.SubElement(xml_parent,
@ -3671,7 +3452,7 @@ def ruby_metrics(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/ruby-metrics.yaml
:language: yaml
"""
metrics = XML.SubElement(
@ -3710,7 +3491,7 @@ def fitnesse(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/fitnesse001.yaml
:language: yaml
"""
fitnesse = XML.SubElement(
xml_parent,
@ -3751,7 +3532,7 @@ def valgrind(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/valgrind001.yaml
:language: yaml
"""
p = XML.SubElement(xml_parent,
'org.jenkinsci.plugins.valgrind.ValgrindPublisher')
@ -3838,11 +3619,12 @@ def pmd(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/pmd001.yaml
:language: yaml
Full example:
.. literalinclude:: /../../tests/publishers/fixtures/pmd002.yaml
:language: yaml
"""
xml_element = XML.SubElement(xml_parent, 'hudson.plugins.pmd.PmdPublisher')
@ -3867,7 +3649,7 @@ def scan_build(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/scan-build001.yaml
:language: yaml
"""
threshold = str(data.get('threshold', 0))
if not threshold.isdigit():
@ -3941,11 +3723,12 @@ def dry(parser, xml_parent, data):
Example:
.. literalinclude:: /../../tests/publishers/fixtures/dry001.yaml
:language: yaml
Full example:
.. literalinclude:: /../../tests/publishers/fixtures/dry004.yaml
:language: yaml
"""
xml_element = XML.SubElement(xml_parent, 'hudson.plugins.dry.DryPublisher')

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.tasks.test.AggregatedTestResultPublisher>
<includeFailedBuilds>true</includeFailedBuilds>
</hudson.tasks.test.AggregatedTestResultPublisher>
</publishers>
</project>

View File

@ -0,0 +1,3 @@
publishers:
- aggregate-tests:
include-failed-builds: true

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.claim.ClaimPublisher/>
</publishers>
</project>

View File

@ -0,0 +1,2 @@
publishers:
- claim-build

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.cobertura.CoberturaPublisher>
<coberturaReportFile>/reports/cobertura/coverage.xml</coberturaReportFile>
<onlyStable>true</onlyStable>
<failUnhealthy>true</failUnhealthy>
<failUnstable>true</failUnstable>
<autoUpdateHealth>true</autoUpdateHealth>
<autoUpdateStability>true</autoUpdateStability>
<zoomCoverageChart>true</zoomCoverageChart>
<failNoReports>true</failNoReports>
<healthyTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>FILES</hudson.plugins.cobertura.targets.CoverageMetric>
<int>10</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>50</int>
</entry>
</targets>
</healthyTarget>
<unhealthyTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>FILES</hudson.plugins.cobertura.targets.CoverageMetric>
<int>20</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>40</int>
</entry>
</targets>
</unhealthyTarget>
<failingTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>FILES</hudson.plugins.cobertura.targets.CoverageMetric>
<int>30</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>30</int>
</entry>
</targets>
</failingTarget>
<sourceEncoding>Big5</sourceEncoding>
</hudson.plugins.cobertura.CoberturaPublisher>
</publishers>
</project>

View File

@ -0,0 +1,20 @@
publishers:
- cobertura:
report-file: "/reports/cobertura/coverage.xml"
only-stable: "true"
fail-no-reports: "true"
fail-unhealthy: "true"
fail-unstable: "true"
health-auto-update: "true"
stability-auto-update: "true"
zoom-coverage-chart: "true"
source-encoding: "Big5"
targets:
- files:
healthy: 10
unhealthy: 20
failing: 30
- method:
healthy: 50
unhealthy: 40
failing: 30

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<com.michelin.cio.hudson.plugins.copytoslave.CopyToMasterNotifier>
<includes>file1,file2*.txt</includes>
<excludes>file2bad.txt</excludes>
<destinationFolder/>
</com.michelin.cio.hudson.plugins.copytoslave.CopyToMasterNotifier>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- copy-to-master:
includes:
- file1
- file2*.txt
excludes:
- file2bad.txt

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.cobertura.CoberturaPublisher>
<coberturaReportFile>**/coverage.xml</coberturaReportFile>
<onlyStable>false</onlyStable>
<healthyTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
<int>70</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
<int>80</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>80</int>
</entry>
</targets>
</healthyTarget>
<unhealthyTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
</targets>
</unhealthyTarget>
<failingTarget>
<targets class="enum-map" enum-type="hudson.plugins.cobertura.targets.CoverageMetric">
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>CONDITIONAL</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>LINE</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
<entry>
<hudson.plugins.cobertura.targets.CoverageMetric>METHOD</hudson.plugins.cobertura.targets.CoverageMetric>
<int>0</int>
</entry>
</targets>
</failingTarget>
<sourceEncoding>ASCII</sourceEncoding>
</hudson.plugins.cobertura.CoberturaPublisher>
</publishers>
</project>

View File

@ -0,0 +1,2 @@
publishers:
- coverage

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<org.jenkinsci.plugins.cppcheck.CppcheckPublisher>
<cppcheckConfig>
<pattern>**/cppcheck.xml</pattern>
<ignoreBlankFiles>false</ignoreBlankFiles>
<configSeverityEvaluation>
<threshold>5</threshold>
<newThreshold>5</newThreshold>
<failureThreshold>7</failureThreshold>
<newFailureThreshold>3</newFailureThreshold>
<healthy/>
<unHealthy/>
<severityError>true</severityError>
<severityWarning>true</severityWarning>
<severityStyle>true</severityStyle>
<severityPerformance>true</severityPerformance>
<severityInformation>false</severityInformation>
</configSeverityEvaluation>
<configGraph>
<xSize>500</xSize>
<ySize>200</ySize>
<displayAllErrors>false</displayAllErrors>
<displayErrorSeverity>true</displayErrorSeverity>
<displayWarningSeverity>false</displayWarningSeverity>
<displayStyleSeverity>false</displayStyleSeverity>
<displayPerformanceSeverity>false</displayPerformanceSeverity>
<displayInformationSeverity>false</displayInformationSeverity>
</configGraph>
</cppcheckConfig>
</org.jenkinsci.plugins.cppcheck.CppcheckPublisher>
</publishers>
</project>

View File

@ -0,0 +1,21 @@
publishers:
- cppcheck:
pattern: "**/cppcheck.xml"
# the rest is optional
# build status (new) error count thresholds
thresholds:
unstable: 5
new-unstable: 5
failure: 7
new-failure: 3
# severities which count towards the threshold, default all true
severity:
error: true
warning: true
information: false
graph:
xysize: [500, 200]
# which errors to display, default only sum
display:
sum: false
error: true

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.tasks.Fingerprinter>
<targets>builddir/test*.xml</targets>
<recordBuildArtifacts>false</recordBuildArtifacts>
</hudson.tasks.Fingerprinter>
</publishers>
</project>

View File

@ -0,0 +1,4 @@
publishers:
- fingerprint:
files: builddir/test*.xml
record-artifacts: false

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder>
<groovyScript>manager.buildFailure()</groovyScript>
</org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder>
</publishers>
</project>

View File

@ -0,0 +1,2 @@
publishers:
- groovy-postbuild: "manager.buildFailure()"

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<htmlpublisher.HtmlPublisher>
<reportTargets>
<htmlpublisher.HtmlPublisherTarget>
<reportName>some name</reportName>
<reportDir>path/</reportDir>
<reportFiles>index.html</reportFiles>
<keepAll>true</keepAll>
<allowMissing>true</allowMissing>
<wrapperName>htmlpublisher-wrapper.html</wrapperName>
</htmlpublisher.HtmlPublisherTarget>
</reportTargets>
</htmlpublisher.HtmlPublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- html-publisher:
name: "some name"
dir: "path/"
files: "index.html"
keep-all: true
allow-missing: true

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.jabber.im.transport.JabberPublisher>
<targets>
<hudson.plugins.im.GroupChatIMMessageTarget>
<name>foo-room@conference-2-fooserver.foo.com</name>
<notificationOnly>false</notificationOnly>
</hudson.plugins.im.GroupChatIMMessageTarget>
<hudson.plugins.im.DefaultIMMessageTarget>
<value>foo-user@conference-2-fooserver.foo.com</value>
</hudson.plugins.im.DefaultIMMessageTarget>
</targets>
<strategy>ALL</strategy>
<notifyOnBuildStart>true</notifyOnBuildStart>
<notifySuspects>false</notifySuspects>
<notifyCulprits>false</notifyCulprits>
<notifyFixers>false</notifyFixers>
<notifyUpstreamCommitters>false</notifyUpstreamCommitters>
<buildToChatNotifier class="hudson.plugins.im.build_notify.DefaultBuildToChatNotifier"/>
<matrixMultiplier>ONLY_CONFIGURATIONS</matrixMultiplier>
</hudson.plugins.jabber.im.transport.JabberPublisher>
</publishers>
</project>

View File

@ -0,0 +1,9 @@
publishers:
- jabber:
notify-on-build-start: true
group-targets:
- "foo-room@conference-2-fooserver.foo.com"
individual-targets:
- "foo-user@conference-2-fooserver.foo.com"
strategy: all
message: summary-scm

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.jacoco.JacocoPublisher>
<execPattern>**/**.exec</execPattern>
<classPattern>**/classes</classPattern>
<sourcePattern>**/src/main/java</sourcePattern>
<changeBuildStatus/>
<inclusionPattern/>
<exclusionPattern/>
<maximumBranchCoverage>10</maximumBranchCoverage>
<minimumBranchCoverage>20</minimumBranchCoverage>
<maximumMethodCoverage>50</maximumMethodCoverage>
<minimumMethodCoverage>40</minimumMethodCoverage>
</hudson.plugins.jacoco.JacocoPublisher>
</publishers>
</project>

View File

@ -0,0 +1,13 @@
publishers:
- jacoco:
exec-pattern: "**/**.exec"
class-pattern: "**/classes"
source-pattern: "**/src/main/java"
status-update: true
targets:
- branch:
healthy: 10
unhealthy: 20
- method:
healthy: 50
unhealthy: 40

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.jira.JiraIssueUpdater/>
</publishers>
</project>

View File

@ -0,0 +1,2 @@
publishers:
- jira

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<join.JoinTrigger>
<joinProjects>project-one,project-two</joinProjects>
</join.JoinTrigger>
</publishers>
</project>

View File

@ -0,0 +1,5 @@
publishers:
- join-trigger:
projects:
- project-one
- project-two

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.logparser.LogParserPublisher>
<unstableOnWarning>true</unstableOnWarning>
<failBuildOnError>true</failBuildOnError>
<parsingRulesPath>/path/to/parserules</parsingRulesPath>
</hudson.plugins.logparser.LogParserPublisher>
</publishers>
</project>

View File

@ -0,0 +1,5 @@
publishers:
- logparser:
parse-rules: "/path/to/parserules"
unstable-on-warning: true
fail-on-error: true

View File

@ -2,7 +2,8 @@
<project>
<publishers>
<hudson.maven.RedeployPublisher>
<url>file:///path/to/repo</url>
<id>example</id>
<url>http://repo.example.com/maven2/</url>
<uniqueVersion>true</uniqueVersion>
<evenIfUnstable>false</evenIfUnstable>
</hudson.maven.RedeployPublisher>

View File

@ -0,0 +1,6 @@
publishers:
- maven-deploy:
id: example
url: http://repo.example.com/maven2/
unique-version: true
deploy-unstable: false

View File

@ -1,4 +0,0 @@
publishers:
- maven-deploy:
url: file:///path/to/repo

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.performance.PerformancePublisher>
<errorFailedThreshold>85</errorFailedThreshold>
<errorUnstableThreshold>-1</errorUnstableThreshold>
<parsers>
<hudson.plugins.performance.JMeterParser>
<glob>/special/file.jtl</glob>
</hudson.plugins.performance.JMeterParser>
<hudson.plugins.performance.JUnitParser>
<glob>/special/file.xml</glob>
</hudson.plugins.performance.JUnitParser>
</parsers>
</hudson.plugins.performance.PerformancePublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter: "/special/file.jtl"
- junit: "/special/file.xml"

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.performance.PerformancePublisher>
<errorFailedThreshold>85</errorFailedThreshold>
<errorUnstableThreshold>-1</errorUnstableThreshold>
<parsers>
<hudson.plugins.performance.JMeterParser>
<glob>**/*.jtl</glob>
</hudson.plugins.performance.JMeterParser>
<hudson.plugins.performance.JUnitParser>
<glob>**/TEST-*.xml</glob>
</hudson.plugins.performance.JUnitParser>
</parsers>
</hudson.plugins.performance.PerformancePublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter
- junit

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.performance.PerformancePublisher>
<errorFailedThreshold>85</errorFailedThreshold>
<errorUnstableThreshold>-1</errorUnstableThreshold>
<parsers>
<hudson.plugins.performance.JMeterParser>
<glob>/special/file.jtl</glob>
</hudson.plugins.performance.JMeterParser>
<hudson.plugins.performance.JUnitParser>
<glob>/special/file.xml</glob>
</hudson.plugins.performance.JUnitParser>
<hudson.plugins.performance.JMeterParser>
<glob>**/*.jtl</glob>
</hudson.plugins.performance.JMeterParser>
<hudson.plugins.performance.JUnitParser>
<glob>**/TEST-*.xml</glob>
</hudson.plugins.performance.JUnitParser>
</parsers>
</hudson.plugins.performance.PerformancePublisher>
</publishers>
</project>

View File

@ -0,0 +1,9 @@
publishers:
- performance:
failed-threshold: 85
unstable-threshold: -1
report:
- jmeter: "/special/file.jtl"
- junit: "/special/file.xml"
- jmeter
- junit

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.plot.PlotPublisher>
<plots>
<hudson.plugins.plot.Plot>
<title>MyPlot</title>
<yaxis>Y</yaxis>
<csvFileName>myplot.csv</csvFileName>
<series>
<hudson.plugins.plot.PropertiesSeries>
<file>graph-me-second.properties</file>
<label>MyLabel</label>
<fileType>properties</fileType>
</hudson.plugins.plot.PropertiesSeries>
<hudson.plugins.plot.CSVSeries>
<file>graph-me-first.csv</file>
<inclusionFlag>OFF</inclusionFlag>
<exclusionValues/>
<url>http://srv1</url>
<displayTableFlag>false</displayTableFlag>
<fileType>csv</fileType>
</hudson.plugins.plot.CSVSeries>
</series>
<group>PlotGroup</group>
<useDescr>false</useDescr>
<numBuilds/>
<style>line</style>
</hudson.plugins.plot.Plot>
<hudson.plugins.plot.Plot>
<title>MyPlot2</title>
<yaxis>Y</yaxis>
<csvFileName>myplot2.csv</csvFileName>
<series>
<hudson.plugins.plot.XMLSeries>
<file>graph-me-third.xml</file>
<url>http://srv2</url>
<xpathString>/*</xpathString>
<nodeTypeString>NODE</nodeTypeString>
<fileType>xml</fileType>
</hudson.plugins.plot.XMLSeries>
</series>
<group>PlotGroup</group>
<useDescr>false</useDescr>
<numBuilds/>
<style>line</style>
</hudson.plugins.plot.Plot>
</plots>
</hudson.plugins.plot.PlotPublisher>
</publishers>
</project>

View File

@ -0,0 +1,30 @@
publishers:
- plot:
- title: MyPlot
yaxis: Y
csv-file-name: myplot.csv
group: PlotGroup
num-builds: ''
style: line
use-description: false
series:
- file: graph-me-second.properties
label: MyLabel
format: properties
- file: graph-me-first.csv
url: 'http://srv1'
inclusion-flag: 'off'
display-table: true
format: csv
- title: MyPlot2
yaxis: Y
csv-file-name: myplot2.csv
group: PlotGroup
style: line
use-description: false
series:
- file: graph-me-third.xml
url: 'http://srv2'
format: xml
xpath-type: 'node'
xpath: '/*'

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.postbuildtask.PostbuildTask>
<tasks>
<hudson.plugins.postbuildtask.TaskProperties>
<logTexts>
<hudson.plugins.postbuildtask.LogProperties>
<logText>line to match</logText>
<operator>AND</operator>
</hudson.plugins.postbuildtask.LogProperties>
<hudson.plugins.postbuildtask.LogProperties>
<logText>line to match</logText>
<operator>OR</operator>
</hudson.plugins.postbuildtask.LogProperties>
<hudson.plugins.postbuildtask.LogProperties>
<logText>line to match</logText>
<operator>AND</operator>
</hudson.plugins.postbuildtask.LogProperties>
</logTexts>
<EscalateStatus>true</EscalateStatus>
<RunIfJobSuccessful>true</RunIfJobSuccessful>
<script>echo &quot;Here goes the task script&quot;
</script>
</hudson.plugins.postbuildtask.TaskProperties>
</tasks>
</hudson.plugins.postbuildtask.PostbuildTask>
</publishers>
</project>

View File

@ -0,0 +1,13 @@
publishers:
- post-tasks:
- matches:
- log-text: line to match
operator: AND
- log-text: line to match
operator: OR
- log-text: line to match
operator: AND
escalate-status: true
run-if-job-successful: true
script: |
echo "Here goes the task script"

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.robot.RobotPublisher>
<outputPath>reports/robot</outputPath>
<logFileLink>report.html</logFileLink>
<reportFileName>custom-report.html</reportFileName>
<logFileName>custom-log.html</logFileName>
<outputFileName>custom-output.xml</outputFileName>
<passThreshold>80.0</passThreshold>
<unstableThreshold>60.0</unstableThreshold>
<onlyCritical>false</onlyCritical>
<otherFiles>
<string>extra-file1.html</string>
<string>extra-file2.txt</string>
</otherFiles>
</hudson.plugins.robot.RobotPublisher>
</publishers>
</project>

View File

@ -0,0 +1,13 @@
publishers:
- robot:
output-path: reports/robot
log-file-link: report.html
report-html: custom-report.html
log-html: custom-log.html
output-xml: custom-output.xml
pass-threshold: 80.0
unstable-threshold: 60.0
only-critical: false
other-files:
- extra-file1.html
- extra-file2.txt

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.sloccount.SloccountPublisher>
<pattern>sloccount.sc</pattern>
<encoding>latin-1</encoding>
</hudson.plugins.sloccount.SloccountPublisher>
</publishers>
</project>

View File

@ -0,0 +1,4 @@
publishers:
- sloccount:
report-files: sloccount.sc
charset: latin-1

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.sonar.SonarPublisher>
<jdk>MyJdk</jdk>
<branch>myBranch</branch>
<language>java</language>
<mavenOpts>-DskipTests</mavenOpts>
<jobAdditionalProperties>-DsonarHostURL=http://example.com/</jobAdditionalProperties>
<triggers>
<skipScmCause>true</skipScmCause>
<skipUpstreamCause>true</skipUpstreamCause>
<envVar>SKIP_SONAR</envVar>
</triggers>
</hudson.plugins.sonar.SonarPublisher>
</publishers>
</project>

View File

@ -0,0 +1,11 @@
publishers:
- sonar:
jdk: MyJdk
branch: myBranch
language: java
maven-opts: -DskipTests
additional-properties: -DsonarHostURL=http://example.com/
skip-global-triggers:
skip-when-scm-change: true
skip-when-upstream-build: true
skip-when-envvar-defined: SKIP_SONAR

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<org.tap4j.plugin.TapPublisher>
<testResults>puiparts.tap</testResults>
<failIfNoResults>false</failIfNoResults>
<failedTestsMarkBuildAsFailure>false</failedTestsMarkBuildAsFailure>
<outputTapToConsole>true</outputTapToConsole>
<enableSubtests>true</enableSubtests>
<discardOldReports>false</discardOldReports>
<todoIsFailure>false</todoIsFailure>
</org.tap4j.plugin.TapPublisher>
</publishers>
</project>

View File

@ -0,0 +1,4 @@
publishers:
- tap:
results: puiparts.tap
todo-is-failure: false

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.textfinder.TextFinderPublisher>
<fileSet>file.txt</fileSet>
<regexp>some string</regexp>
<alsoCheckConsoleOutput>true</alsoCheckConsoleOutput>
<succeedIfFound>false</succeedIfFound>
<unstableIfFound>false</unstableIfFound>
</hudson.plugins.textfinder.TextFinderPublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- text-finder:
regexp: "some string"
fileset: "file.txt"
also-check-console-output: true
succeed-if-found: false
unstable-if-found: false

View File

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.violations.ViolationsPublisher>
<config>
<suppressions class="tree-set">
<no-comparator/>
</suppressions>
<typeConfigs>
<no-comparator/>
<entry>
<string>checkstyle</string>
<hudson.plugins.violations.TypeConfig>
<type>checkstyle</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>codenarc</string>
<hudson.plugins.violations.TypeConfig>
<type>codenarc</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>cpd</string>
<hudson.plugins.violations.TypeConfig>
<type>cpd</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>cpplint</string>
<hudson.plugins.violations.TypeConfig>
<type>cpplint</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>csslint</string>
<hudson.plugins.violations.TypeConfig>
<type>csslint</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>findbugs</string>
<hudson.plugins.violations.TypeConfig>
<type>findbugs</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>fxcop</string>
<hudson.plugins.violations.TypeConfig>
<type>fxcop</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>gendarme</string>
<hudson.plugins.violations.TypeConfig>
<type>gendarme</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>jcreport</string>
<hudson.plugins.violations.TypeConfig>
<type>jcreport</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>jslint</string>
<hudson.plugins.violations.TypeConfig>
<type>jslint</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>pep8</string>
<hudson.plugins.violations.TypeConfig>
<type>pep8</type>
<min>0</min>
<max>1</max>
<unstable>1</unstable>
<usePattern>false</usePattern>
<pattern>**/pep8.txt</pattern>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>perlcritic</string>
<hudson.plugins.violations.TypeConfig>
<type>perlcritic</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>pmd</string>
<hudson.plugins.violations.TypeConfig>
<type>pmd</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>pylint</string>
<hudson.plugins.violations.TypeConfig>
<type>pylint</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>simian</string>
<hudson.plugins.violations.TypeConfig>
<type>simian</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
<entry>
<string>stylecop</string>
<hudson.plugins.violations.TypeConfig>
<type>stylecop</type>
<min>10</min>
<max>999</max>
<unstable>999</unstable>
<usePattern>false</usePattern>
<pattern/>
</hudson.plugins.violations.TypeConfig>
</entry>
</typeConfigs>
<limit>100</limit>
<sourcePathPattern/>
<fauxProjectPath/>
<encoding>default</encoding>
</config>
</hudson.plugins.violations.ViolationsPublisher>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- violations:
pep8:
min: 0
max: 1
unstable: 1
pattern: '**/pep8.txt'

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.warnings.WarningsPublisher>
<consoleParsers>
<hudson.plugins.warnings.ConsoleParser>
<parserName>FxCop</parserName>
</hudson.plugins.warnings.ConsoleParser>
<hudson.plugins.warnings.ConsoleParser>
<parserName>CodeAnalysis</parserName>
</hudson.plugins.warnings.ConsoleParser>
</consoleParsers>
<parserConfigurations>
<hudson.plugins.warnings.ParserConfiguration>
<pattern>**/*.out</pattern>
<parserName>AcuCobol Compiler</parserName>
</hudson.plugins.warnings.ParserConfiguration>
<hudson.plugins.warnings.ParserConfiguration>
<pattern>**/*.warnings</pattern>
<parserName>FxCop</parserName>
</hudson.plugins.warnings.ParserConfiguration>
</parserConfigurations>
<includePattern>[a-zA-Z]\.java,[a-zA-Z]\.cpp</includePattern>
<excludePattern>[a-zA-Z]\.html,[a-zA-Z]\.js</excludePattern>
<canRunOnFailed>true</canRunOnFailed>
<shouldDetectModules>true</shouldDetectModules>
<doNotResolveRelativePaths>false</doNotResolveRelativePaths>
<healthy>50</healthy>
<unHealthy>25</unHealthy>
<thresholdLimit>normal</thresholdLimit>
<thresholds>
<unstableTotalAll>90</unstableTotalAll>
<unstableTotalHigh>90</unstableTotalHigh>
<unstableTotalNormal>40</unstableTotalNormal>
<unstableTotalLow>30</unstableTotalLow>
<failedTotalAll>100</failedTotalAll>
<failedTotalHigh>100</failedTotalHigh>
<failedTotalNormal>50</failedTotalNormal>
<failedTotalLow>40</failedTotalLow>
<unstableNewAll>100</unstableNewAll>
<unstableNewHigh>50</unstableNewHigh>
<unstableNewNormal>30</unstableNewNormal>
<unstableNewLow>10</unstableNewLow>
<failedNewAll>100</failedNewAll>
<failedNewHigh>60</failedNewHigh>
<failedNewNormal>50</failedNewNormal>
<failedNewLow>40</failedNewLow>
</thresholds>
<dontComputeNew>false</dontComputeNew>
<useDeltaValues>true</useDeltaValues>
<useStableBuildAsReference>true</useStableBuildAsReference>
<defaultEncoding>ISO-8859-9</defaultEncoding>
</hudson.plugins.warnings.WarningsPublisher>
</publishers>
</project>

View File

@ -0,0 +1,43 @@
publishers:
- warnings:
console-log-parsers:
- FxCop
- CodeAnalysis
workspace-file-scanners:
- file-pattern: '**/*.out'
scanner: 'AcuCobol Compiler'
- file-pattern: '**/*.warnings'
scanner: FxCop
files-to-include: '[a-zA-Z]\.java,[a-zA-Z]\.cpp'
files-to-ignore: '[a-zA-Z]\.html,[a-zA-Z]\.js'
run-always: true
detect-modules: true
resolve-relative-paths: true
health-threshold-high: 50
health-threshold-low: 25
health-priorities: high-and-normal
total-thresholds:
unstable:
total-all: 90
total-high: 90
total-normal: 40
total-low: 30
failed:
total-all: 100
total-high: 100
total-normal: 50
total-low: 40
new-thresholds:
unstable:
new-all: 100
new-high: 50
new-normal: 30
new-low: 10
failed:
new-all: 100
new-high: 60
new-normal: 50
new-low: 40
use-delta-for-new-warnings: true
only-use-stable-builds-as-reference: true
default-encoding: ISO-8859-9

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.ws__cleanup.WsCleanup plugin="ws-cleanup@0.14">
<patterns>
<hudson.plugins.ws__cleanup.Pattern>
<pattern>*.zip</pattern>
<type>INCLUDE</type>
</hudson.plugins.ws__cleanup.Pattern>
</patterns>
<deleteDirs>false</deleteDirs>
<cleanupMatrixParent>false</cleanupMatrixParent>
<cleanWhenSuccess>true</cleanWhenSuccess>
<cleanWhenUnstable>true</cleanWhenUnstable>
<cleanWhenFailure>true</cleanWhenFailure>
<cleanWhenNotBuilt>false</cleanWhenNotBuilt>
<cleanWhenAborted>true</cleanWhenAborted>
<notFailBuild>true</notFailBuild>
</hudson.plugins.ws__cleanup.WsCleanup>
</publishers>
</project>

View File

@ -0,0 +1,7 @@
publishers:
- workspace-cleanup:
include:
- "*.zip"
clean-if:
- success: true
- not-built: false

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<publishers>
<hudson.plugins.summary__report.ACIPluginPublisher>
<name>*_summary_report.xml</name>
</hudson.plugins.summary__report.ACIPluginPublisher>
</publishers>
</project>

View File

@ -0,0 +1,3 @@
publishers:
- xml-summary:
files: '*_summary_report.xml'