From e53a05ac39288ee0cf434f051eff68fa6ac5a902 Mon Sep 17 00:00:00 2001 From: Andrew Hutchings <andrew@linuxjedi.co.uk> Date: Mon, 19 Mar 2012 20:05:03 +0000 Subject: [PATCH] Add Jenkins job filler to puppet Adds default Openstack jobs for a given project name into Jenkins To envoke add a section as follows to your site manifest: class { "jenkins_jobs": site => "openstack", projects => ["project1", "project2"] } Now using xml building blocks! Change-Id: If4cacba91d3dc22207e53413543e5bcfcfb0b541 --- modules/jenkins_jobs/manifests/add_jobs.pp | 85 +++++++++ modules/jenkins_jobs/manifests/init.pp | 10 + modules/jenkins_jobs/manifests/job.pp | 44 +++++ modules/jenkins_jobs/templates/body.xml.erb | 59 ++++++ .../templates/builder_copy_bundle.xml.erb | 23 +++ .../templates/builder_coverage.xml.erb | 9 + .../templates/builder_docs.xml.erb | 10 + .../templates/builder_gerrit_git_prep.xml.erb | 31 +++ .../templates/builder_pep8.xml.erb | 9 + .../templates/builder_ppa.xml.erb | 22 +++ .../templates/builder_python26.xml.erb | 8 + .../templates/builder_python27.xml.erb | 8 + .../templates/builder_tarball.xml.erb | 4 + .../templates/builder_venv.xml.erb | 3 + .../jenkins_jobs/templates/logrotate.xml.erb | 7 + .../templates/publisher_coverage.xml.erb | 53 ++++++ .../templates/publisher_docs.xml.erb | 20 ++ .../templates/publisher_pep8.xml.erb | 179 ++++++++++++++++++ .../templates/publisher_ppa.xml.erb | 4 + .../templates/publisher_tarball.xml.erb | 30 +++ .../templates/publisher_venv.xml.erb | 4 + .../jenkins_jobs/templates/scm_git.xml.erb | 34 ++++ .../templates/trigger_gerrit_comment.xml.erb | 28 +++ .../trigger_gerrit_ref_updated.xml.erb | 25 +++ .../templates/trigger_timed_15mins.xml.erb | 3 + .../templates/trigger_timed_midnight.xml.erb | 3 + 26 files changed, 715 insertions(+) create mode 100644 modules/jenkins_jobs/manifests/add_jobs.pp create mode 100644 modules/jenkins_jobs/manifests/init.pp create mode 100644 modules/jenkins_jobs/manifests/job.pp create mode 100644 modules/jenkins_jobs/templates/body.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_copy_bundle.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_coverage.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_docs.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_gerrit_git_prep.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_pep8.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_ppa.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_python26.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_python27.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_tarball.xml.erb create mode 100644 modules/jenkins_jobs/templates/builder_venv.xml.erb create mode 100644 modules/jenkins_jobs/templates/logrotate.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_coverage.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_docs.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_pep8.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_ppa.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_tarball.xml.erb create mode 100644 modules/jenkins_jobs/templates/publisher_venv.xml.erb create mode 100644 modules/jenkins_jobs/templates/scm_git.xml.erb create mode 100644 modules/jenkins_jobs/templates/trigger_gerrit_comment.xml.erb create mode 100644 modules/jenkins_jobs/templates/trigger_gerrit_ref_updated.xml.erb create mode 100644 modules/jenkins_jobs/templates/trigger_timed_15mins.xml.erb create mode 100644 modules/jenkins_jobs/templates/trigger_timed_midnight.xml.erb diff --git a/modules/jenkins_jobs/manifests/add_jobs.pp b/modules/jenkins_jobs/manifests/add_jobs.pp new file mode 100644 index 0000000000..4e0c22dda3 --- /dev/null +++ b/modules/jenkins_jobs/manifests/add_jobs.pp @@ -0,0 +1,85 @@ +define jenkins_jobs::add_jobs($site) { + $project = $name + + jenkins_jobs::job { "${name}-coverage": + site => "${site}", + project => "${name}", + job => "coverage", + logrotate => template("jenkins_jobs/logrotate.xml.erb"), + builders => [template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_coverage.xml.erb")], + publishers => template("jenkins_jobs/publisher_coverage.xml.erb"), + triggers => template("jenkins_jobs/trigger_timed_15mins.xml.erb"), + scm => template("jenkins_jobs/scm_git.xml.erb") + } + + jenkins_jobs::job { "${name}-docs": + site => "${site}", + project => "${name}", + job => "docs", + triggers => template("jenkins_jobs/trigger_timed_15mins.xml.erb"), + builders => [template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_docs.xml.erb")], + publishers => template("jenkins_jobs/publisher_docs.xml.erb"), + scm => template("jenkins_jobs/scm_git.xml.erb") + } + + jenkins_jobs::job { "${name}-merge": + site => "${site}", + project => "${name}", + job => "merge", + triggers => template("jenkins_jobs/trigger_gerrit_comment.xml.erb"), + builders => template("jenkins_jobs/builder_gerrit_git_prep.xml.erb") + } + + jenkins_jobs::job { "${name}-pep8": + site => "${site}", + project => "${name}", + job => "pep8", + triggers => template("jenkins_jobs/trigger_gerrit_comment.xml.erb"), + builders => [template("jenkins_jobs/builder_gerrit_git_prep.xml.erb"), template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_pep8.xml.erb")], + publishers => template("jenkins_jobs/publisher_pep8.xml.erb") + } + + jenkins_jobs::job { "${name}-ppa": + site => "${site}", + project => "${name}", + job => "ppa", + builders => template("jenkins_jobs/builder_ppa.xml.erb"), + publishers => template("jenkins_jobs/publisher_ppa.xml.erb") + } + + jenkins_jobs::job { "${name}-python26": + site => "${site}", + project => "${name}", + job => "python26", + triggers => template("jenkins_jobs/trigger_gerrit_comment.xml.erb"), + builders => [template("jenkins_jobs/builder_gerrit_git_prep.xml.erb"), template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_python26.xml.erb")], + } + + jenkins_jobs::job { "${name}-python27": + site => "${site}", + project => "${name}", + job => "python27", + triggers => template("jenkins_jobs/trigger_gerrit_comment.xml.erb"), + builders => [template("jenkins_jobs/builder_gerrit_git_prep.xml.erb"), template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_python27.xml.erb")], + } + + jenkins_jobs::job { "${name}-tarball": + site => "${site}", + project => "${name}", + job => "tarball", + triggers => template("jenkins_jobs/trigger_gerrit_ref_updated.xml.erb"), + builders => [template("jenkins_jobs/builder_gerrit_git_prep.xml.erb"), template("jenkins_jobs/builder_copy_bundle.xml.erb"), template("jenkins_jobs/builder_tarball.xml.erb")], + publishers => template("jenkins_jobs/publisher_tarball.xml.erb") + } + + jenkins_jobs::job { "${name}-venv": + site => "${site}", + project => "${job}", + job => "venv", + triggers => template("jenkins_jobs/trigger_timed_midnight.xml.erb"), + builders => template("jenkins_jobs/builder_venv.xml.erb"), + publishers => template("jenkins_jobs/publisher_venv.xml.erb"), + scm => template("jenkins_jobs/scm_git.xml.erb") + } + +} diff --git a/modules/jenkins_jobs/manifests/init.pp b/modules/jenkins_jobs/manifests/init.pp new file mode 100644 index 0000000000..8a5cc419a0 --- /dev/null +++ b/modules/jenkins_jobs/manifests/init.pp @@ -0,0 +1,10 @@ +class jenkins_jobs($site, $projects) { + + service { "jenkins": + ensure => running + } + + jenkins_jobs::add_jobs { $projects: + site => "${site}" + } +} diff --git a/modules/jenkins_jobs/manifests/job.pp b/modules/jenkins_jobs/manifests/job.pp new file mode 100644 index 0000000000..53029130e8 --- /dev/null +++ b/modules/jenkins_jobs/manifests/job.pp @@ -0,0 +1,44 @@ +define jenkins_jobs::job($site, $project, $job, $triggers="", $builders, $publishers="", $logrotate="", $scm="") { + + file { "/var/lib/jenkins/jobs/${project}-${job}": + ensure => directory, + owner => 'jenkins', + group => 'nogroup' + } + + file { "/var/lib/jenkins/jobs/${project}-${job}/builds": + ensure => directory, + owner => 'jenkins', + group => 'nogroup', + require => File["/var/lib/jenkins/jobs/${project}-${job}"], + notify => Service["jenkins"] + } + + file { "/var/lib/jenkins/jobs/${project}-${job}/config-history": + ensure => directory, + owner => 'jenkins', + group => 'nogroup', + require => File["/var/lib/jenkins/jobs/${project}-${job}"], + notify => Service["jenkins"] + } + + file { "/var/lib/jenkins/jobs/${project}-${job}/config.xml": + ensure => present, + content => template("jenkins_jobs/body.xml.erb"), + owner => 'jenkins', + group => 'nogroup', + require => File["/var/lib/jenkins/jobs/${project}-${job}"], + notify => Service["jenkins"] + } + + file { "/var/lib/jenkins/jobs/${project}-${job}/nextBuildNumer": + ensure => present, + content => "1", + owner => 'jenkins', + group => 'nogroup', + replace => false, + require => File["/var/lib/jenkins/jobs/${project}-${job}"], + notify => Service["jenkins"] + } + +} diff --git a/modules/jenkins_jobs/templates/body.xml.erb b/modules/jenkins_jobs/templates/body.xml.erb new file mode 100644 index 0000000000..14a6719195 --- /dev/null +++ b/modules/jenkins_jobs/templates/body.xml.erb @@ -0,0 +1,59 @@ +<?xml version='1.0' encoding='UTF-8'?> +<project> + <actions/> + <description></description> + <%= logrotate %> + <keepDependencies>false</keepDependencies> + <properties> + <com.coravy.hudson.plugins.github.GithubProjectProperty> + <projectUrl>https://github.com/<%= site %>/<%= project %>/</projectUrl> + </com.coravy.hudson.plugins.github.GithubProjectProperty> + <hudson.plugins.throttleconcurrents.ThrottleJobProperty> + <maxConcurrentPerNode>0</maxConcurrentPerNode> + <maxConcurrentTotal>0</maxConcurrentTotal> + <categories/> + <throttleEnabled>false</throttleEnabled> + <throttleOption>project</throttleOption> + <configVersion>1</configVersion> + </hudson.plugins.throttleconcurrents.ThrottleJobProperty> + <EnvInjectJobProperty> + <info> + <propertiesContent>PROJECT=<%= project %></propertiesContent> + <loadFilesFromMaster>false</loadFilesFromMaster> + </info> + <on>true</on> + <keepJenkinsSystemVariables>true</keepJenkinsSystemVariables> + <keepBuildVariables>true</keepBuildVariables> + <contributors/> + </EnvInjectJobProperty> + <hudson.security.AuthorizationMatrixProperty> + <permission>hudson.model.Item.Build:authenticated</permission> + </hudson.security.AuthorizationMatrixProperty> + </properties> + <% if scm == "" %> + <scm class="hudson.scm.NullSCM"/> + <% else %> + <%= scm %> + <% end %> + <canRoam>false</canRoam> + <disabled>false</disabled> + <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> + <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> + <% if triggers != "" %> + <triggers class="vector"> + <%= triggers %> + </triggers> + <% end %> + <concurrentBuild>false</concurrentBuild> + <% if builders != "" %> + <builders> + <%= builders %> + </builders> + <% end %> + <% if publishers != "" %> + <publishers> + <%= publishers %> + </publishers> + <% end %> + <buildWrappers/> +</project> diff --git a/modules/jenkins_jobs/templates/builder_copy_bundle.xml.erb b/modules/jenkins_jobs/templates/builder_copy_bundle.xml.erb new file mode 100644 index 0000000000..be713c36c1 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_copy_bundle.xml.erb @@ -0,0 +1,23 @@ + <builders> + <hudson.plugins.copyartifact.CopyArtifact> + <projectName>$PROJECT-venv</projectName> + <filter></filter> + <target></target> + <selector class="hudson.plugins.copyartifact.StatusBuildSelector"/> + </hudson.plugins.copyartifact.CopyArtifact> + <hudson.tasks.Shell> + <command># Support jobs, such as nova-docs, which are not yet triggered by gerrit +if [ "x$GERRIT_BRANCH" = "x" ] ; then + GERRIT_BRANCH=master +fi +mv jenkins_venvs/$GERRIT_BRANCH/.cache.bundle . +rm -fr jenkins_venvs + +if [ -f tools/test-requires -a \ + `git diff HEAD^1 tools/test-requires 2>/dev/null | wc -l` -gt 0 -o \ + `git diff HEAD^1 tools/pip-requires 2>/dev/null | wc -l` -gt 0 ] +then + rm .cache.bundle +fi</command> + </hudson.tasks.Shell> + </builders> diff --git a/modules/jenkins_jobs/templates/builder_coverage.xml.erb b/modules/jenkins_jobs/templates/builder_coverage.xml.erb new file mode 100644 index 0000000000..df75227b87 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_coverage.xml.erb @@ -0,0 +1,9 @@ + <hudson.tasks.Shell> + <command>if [ -f .cache.bundle ] ; then + tox -ejenkinscover +else + tox -evenv -- nosetests test/unit --with-xcoverage --cover-erase --cover-package=<%= project %> + +fi</command> + </hudson.tasks.Shell> + diff --git a/modules/jenkins_jobs/templates/builder_docs.xml.erb b/modules/jenkins_jobs/templates/builder_docs.xml.erb new file mode 100644 index 0000000000..b0820ddddc --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_docs.xml.erb @@ -0,0 +1,10 @@ + <hudson.tasks.Shell> + <command>mkdir -p doc/build +export HUDSON_PUBLISH_DOCS=1 +if [ -f .cache.bundle ] ; then + tox -ejenkinsvenv python setup.py build_sphinx +else + tox -evenv python setup.py build_sphinx +fi</command> + </hudson.tasks.Shell> + diff --git a/modules/jenkins_jobs/templates/builder_gerrit_git_prep.xml.erb b/modules/jenkins_jobs/templates/builder_gerrit_git_prep.xml.erb new file mode 100644 index 0000000000..dfbbb5af50 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_gerrit_git_prep.xml.erb @@ -0,0 +1,31 @@ + <hudson.tasks.Shell> + <command>#!/bin/bash -xe + +if [ -z "$GERRIT_NEWREV" ] && [ -z "$GERRIT_REFSPEC" ] +then + echo "This job may only be triggered by Gerrit." + exit 1 +fi + +if [[ ! -e .git ]] +then + git clone https://review.<%= site %>.org/p/$GERRIT_PROJECT . +fi +git remote update || git remote update # attempt to work around bug #925790 +git reset --hard +git clean -x -f -d -q + +if [ ! -z "$GERRIT_REFSPEC" ] +then + git checkout $GERRIT_BRANCH + git reset --hard remotes/origin/$GERRIT_BRANCH + git clean -x -f -d -q + git fetch https://review.<%= site %>.org/p/$GERRIT_PROJECT $GERRIT_REFSPEC + git merge FETCH_HEAD +else + git checkout $GERRIT_NEWREV + git reset --hard $GERRIT_NEWREV + git clean -x -f -d -q +fi +</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_pep8.xml.erb b/modules/jenkins_jobs/templates/builder_pep8.xml.erb new file mode 100644 index 0000000000..35a0227dd0 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_pep8.xml.erb @@ -0,0 +1,9 @@ + <hudson.tasks.Shell> + <command>#!/bin/sh + +if [ -f .cache.bundle ] ; then + tox -v -ejenkinspep8 | tee pep8.txt +else + tox -v -epep8 | tee pep8.txt +fi</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_ppa.xml.erb b/modules/jenkins_jobs/templates/builder_ppa.xml.erb new file mode 100644 index 0000000000..e67079041a --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_ppa.xml.erb @@ -0,0 +1,22 @@ + <hudson.tasks.Shell> + <command>rm -rf build dist.zip +mkdir build +</command> + </hudson.tasks.Shell> + <hudson.plugins.copyartifact.CopyArtifact> + <projectName><%= project %>-tarball</projectName> + <filter>dist/*.tar.gz</filter> + <target>build</target> + <selector class="hudson.plugins.copyartifact.ParameterizedBuildSelector"> + <parameterName>BUILD_SELECTOR</parameterName> + </selector> + </hudson.plugins.copyartifact.CopyArtifact> + <hudson.tasks.Shell> + <command>#!/bin/bash + +#export DO_UPLOAD="no" +export PROJECT="<%= project %>" +export GERRIT_REFNAME=$BRANCH +/bin/bash -xe ~/openstack-ci/slave_scripts/create-ppa-package.sh +</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_python26.xml.erb b/modules/jenkins_jobs/templates/builder_python26.xml.erb new file mode 100644 index 0000000000..0bf35607c5 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_python26.xml.erb @@ -0,0 +1,8 @@ + <hudson.tasks.Shell> + <command>if [ -f .cache.bundle ] +then + tox -v -ejenkinspy26 +else + tox -v -epy26 +fi</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_python27.xml.erb b/modules/jenkins_jobs/templates/builder_python27.xml.erb new file mode 100644 index 0000000000..462e5f1ed4 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_python27.xml.erb @@ -0,0 +1,8 @@ + <hudson.tasks.Shell> + <command>if [ -f .cache.bundle ] +then + tox -v -ejenkinspy27 +else + tox -v -epy27 +fi</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_tarball.xml.erb b/modules/jenkins_jobs/templates/builder_tarball.xml.erb new file mode 100644 index 0000000000..4c51f32b42 --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_tarball.xml.erb @@ -0,0 +1,4 @@ + <hudson.tasks.Shell> + <command>~/openstack-ci/slave_scripts/create-tarball.sh +</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/builder_venv.xml.erb b/modules/jenkins_jobs/templates/builder_venv.xml.erb new file mode 100644 index 0000000000..459cc5bb6d --- /dev/null +++ b/modules/jenkins_jobs/templates/builder_venv.xml.erb @@ -0,0 +1,3 @@ + <hudson.tasks.Shell> + <command>bash -x ~/openstack-ci/slave_scripts/build-bundle.sh</command> + </hudson.tasks.Shell> diff --git a/modules/jenkins_jobs/templates/logrotate.xml.erb b/modules/jenkins_jobs/templates/logrotate.xml.erb new file mode 100644 index 0000000000..b617b7e689 --- /dev/null +++ b/modules/jenkins_jobs/templates/logrotate.xml.erb @@ -0,0 +1,7 @@ + <logRotator> + <daysToKeep>3</daysToKeep> + <numToKeep>20</numToKeep> + <artifactDaysToKeep>-1</artifactDaysToKeep> + <artifactNumToKeep>-1</artifactNumToKeep> + </logRotator> + diff --git a/modules/jenkins_jobs/templates/publisher_coverage.xml.erb b/modules/jenkins_jobs/templates/publisher_coverage.xml.erb new file mode 100644 index 0000000000..aa534f3185 --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_coverage.xml.erb @@ -0,0 +1,53 @@ + <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> diff --git a/modules/jenkins_jobs/templates/publisher_docs.xml.erb b/modules/jenkins_jobs/templates/publisher_docs.xml.erb new file mode 100644 index 0000000000..e8b1bf78bc --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_docs.xml.erb @@ -0,0 +1,20 @@ + <be.certipost.hudson.plugin.SCPRepositoryPublisher> + <siteName><%= project %>.<%= site %>.org</siteName> + <entries> + <be.certipost.hudson.plugin.Entry> + <filePath>docs/<%= project %></filePath> + <sourceFile>doc/build/html/**</sourceFile> + <keepHierarchy>false</keepHierarchy> + </be.certipost.hudson.plugin.Entry> + <be.certipost.hudson.plugin.Entry> + <filePath>docs/<%= project %>/_static</filePath> + <sourceFile>doc/build/html/_static/**</sourceFile> + <keepHierarchy>false</keepHierarchy> + </be.certipost.hudson.plugin.Entry> + <be.certipost.hudson.plugin.Entry> + <filePath>docs/<%= project %>/_sources</filePath> + <sourceFile>doc/build/html/_sources/**</sourceFile> + <keepHierarchy>false</keepHierarchy> + </be.certipost.hudson.plugin.Entry> + </entries> + </be.certipost.hudson.plugin.SCPRepositoryPublisher> diff --git a/modules/jenkins_jobs/templates/publisher_pep8.xml.erb b/modules/jenkins_jobs/templates/publisher_pep8.xml.erb new file mode 100644 index 0000000000..0fe94351b7 --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_pep8.xml.erb @@ -0,0 +1,179 @@ + <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></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></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></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></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></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></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></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></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></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></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>pmd</string> + <hudson.plugins.violations.TypeConfig> + <type>pmd</type> + <min>10</min> + <max>999</max> + <unstable>999</unstable> + <usePattern>false</usePattern> + <pattern></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></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></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></pattern> + </hudson.plugins.violations.TypeConfig> + </entry> + </typeConfigs> + <limit>100</limit> + <sourcePathPattern></sourcePathPattern> + <fauxProjectPath></fauxProjectPath> + <encoding>default</encoding> + </config> + </hudson.plugins.violations.ViolationsPublisher> diff --git a/modules/jenkins_jobs/templates/publisher_ppa.xml.erb b/modules/jenkins_jobs/templates/publisher_ppa.xml.erb new file mode 100644 index 0000000000..bab1265788 --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_ppa.xml.erb @@ -0,0 +1,4 @@ + <hudson.tasks.ArtifactArchiver> + <artifacts>build/*.dsc,build/*.tar.gz,build/*.changes</artifacts> + <latestOnly>false</latestOnly> + </hudson.tasks.ArtifactArchiver> diff --git a/modules/jenkins_jobs/templates/publisher_tarball.xml.erb b/modules/jenkins_jobs/templates/publisher_tarball.xml.erb new file mode 100644 index 0000000000..7811ecfe0e --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_tarball.xml.erb @@ -0,0 +1,30 @@ + <hudson.tasks.ArtifactArchiver> + <artifacts>dist/*.tar.gz</artifacts> + <latestOnly>false</latestOnly> + </hudson.tasks.ArtifactArchiver> + <be.certipost.hudson.plugin.SCPRepositoryPublisher> + <siteName><%= project %>.<%= site %>.org</siteName> + <entries> + <be.certipost.hudson.plugin.Entry> + <filePath>tarballs/<%= project %>/</filePath> + <sourceFile>dist/*.tar.gz</sourceFile> + <keepHierarchy>false</keepHierarchy> + </be.certipost.hudson.plugin.Entry> + </entries> + </be.certipost.hudson.plugin.SCPRepositoryPublisher> + <hudson.plugins.parameterizedtrigger.BuildTrigger> + <configs> + <hudson.plugins.parameterizedtrigger.BuildTriggerConfig> + <configs> + <hudson.plugins.parameterizedtrigger.PredefinedBuildParameters> + <properties>BUILD_SELECTOR=<SpecificBuildSelector><buildNumber>$BUILD_NUMBER</buildNumber></SpecificBuildSelector> +BRANCH=$GERRIT_REFNAME +</properties> + </hudson.plugins.parameterizedtrigger.PredefinedBuildParameters> + </configs> + <projects><%= project %>-ppa</projects> + <condition>SUCCESS</condition> + <triggerWithNoParameters>false</triggerWithNoParameters> + </hudson.plugins.parameterizedtrigger.BuildTriggerConfig> + </configs> + </hudson.plugins.parameterizedtrigger.BuildTrigger> diff --git a/modules/jenkins_jobs/templates/publisher_venv.xml.erb b/modules/jenkins_jobs/templates/publisher_venv.xml.erb new file mode 100644 index 0000000000..3a114edecc --- /dev/null +++ b/modules/jenkins_jobs/templates/publisher_venv.xml.erb @@ -0,0 +1,4 @@ + <hudson.tasks.ArtifactArchiver> + <artifacts>jenkins_venvs/**/.cache.bundle</artifacts> + <latestOnly>false</latestOnly> + </hudson.tasks.ArtifactArchiver> diff --git a/modules/jenkins_jobs/templates/scm_git.xml.erb b/modules/jenkins_jobs/templates/scm_git.xml.erb new file mode 100644 index 0000000000..ee026a7e26 --- /dev/null +++ b/modules/jenkins_jobs/templates/scm_git.xml.erb @@ -0,0 +1,34 @@ + <scm class="hudson.plugins.git.GitSCM"> + <configVersion>2</configVersion> + <userRemoteConfigs> + <hudson.plugins.git.UserRemoteConfig> + <name>origin</name> + <refspec>+refs/heads/*:refs/remotes/origin/*</refspec> + <url>git://github.com/<%= site %>/<%= project %>.git</url> + </hudson.plugins.git.UserRemoteConfig> + </userRemoteConfigs> + <branches> + <hudson.plugins.git.BranchSpec> + <name>**</name> + </hudson.plugins.git.BranchSpec> + </branches> + <disableSubmodules>false</disableSubmodules> + <recursiveSubmodules>false</recursiveSubmodules> + <doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations> + <authorOrCommitter>false</authorOrCommitter> + <clean>false</clean> + <wipeOutWorkspace>true</wipeOutWorkspace> + <pruneBranches>false</pruneBranches> + <remotePoll>false</remotePoll> + <buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/> + <gitTool>Default</gitTool> + <submoduleCfg class="list"/> + <relativeTargetDir></relativeTargetDir> + <reference></reference> + <excludedRegions></excludedRegions> + <excludedUsers></excludedUsers> + <gitConfigName></gitConfigName> + <gitConfigEmail></gitConfigEmail> + <skipTag>false</skipTag> + <scmName></scmName> + </scm> diff --git a/modules/jenkins_jobs/templates/trigger_gerrit_comment.xml.erb b/modules/jenkins_jobs/templates/trigger_gerrit_comment.xml.erb new file mode 100644 index 0000000000..0f922951e9 --- /dev/null +++ b/modules/jenkins_jobs/templates/trigger_gerrit_comment.xml.erb @@ -0,0 +1,28 @@ + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger> + <spec></spec> + <gerritProjects> + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> + <compareType>PLAIN</compareType> + <pattern><%= site %>/<%= project %></pattern> + <branches> + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch> + <compareType>ANT</compareType> + <pattern>**</pattern> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch> + </branches> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> + </gerritProjects> + <silentMode>false</silentMode> + <escapeQuotes>true</escapeQuotes> + <triggerOnPatchsetUploadedEvent>true</triggerOnPatchsetUploadedEvent> + <triggerOnChangeMergedEvent>false</triggerOnChangeMergedEvent> + <triggerOnCommentAddedEvent>true</triggerOnCommentAddedEvent> + <triggerOnRefUpdatedEvent>false</triggerOnRefUpdatedEvent> + <commentAddedTriggerApprovalCategory>APRV</commentAddedTriggerApprovalCategory> + <commentAddedTriggerApprovalValue>1</commentAddedTriggerApprovalValue> + <buildStartMessage></buildStartMessage> + <buildFailureMessage>This change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.</buildFailureMessage> + <buildSuccessfulMessage></buildSuccessfulMessage> + <buildUnstableMessage></buildUnstableMessage> + <customUrl></customUrl> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger> diff --git a/modules/jenkins_jobs/templates/trigger_gerrit_ref_updated.xml.erb b/modules/jenkins_jobs/templates/trigger_gerrit_ref_updated.xml.erb new file mode 100644 index 0000000000..782d217587 --- /dev/null +++ b/modules/jenkins_jobs/templates/trigger_gerrit_ref_updated.xml.erb @@ -0,0 +1,25 @@ + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> + <compareType>PLAIN</compareType> + <pattern><%= site %>/<%= project %></pattern> + <branches> + <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch> + <compareType>REG_EXP</compareType> + <pattern>^(?!refs/).*$</pattern> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.Branch> + </branches> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.GerritProject> + </gerritProjects> + <silentMode>false</silentMode> + <escapeQuotes>true</escapeQuotes> + <triggerOnPatchsetUploadedEvent>false</triggerOnPatchsetUploadedEvent> + <triggerOnChangeMergedEvent>false</triggerOnChangeMergedEvent> + <triggerOnCommentAddedEvent>false</triggerOnCommentAddedEvent> + <triggerOnRefUpdatedEvent>true</triggerOnRefUpdatedEvent> + <commentAddedTriggerApprovalCategory></commentAddedTriggerApprovalCategory> + <commentAddedTriggerApprovalValue></commentAddedTriggerApprovalValue> + <buildStartMessage></buildStartMessage> + <buildFailureMessage></buildFailureMessage> + <buildSuccessfulMessage></buildSuccessfulMessage> + <buildUnstableMessage></buildUnstableMessage> + <customUrl></customUrl> + </com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTrigger> diff --git a/modules/jenkins_jobs/templates/trigger_timed_15mins.xml.erb b/modules/jenkins_jobs/templates/trigger_timed_15mins.xml.erb new file mode 100644 index 0000000000..183d4b2d40 --- /dev/null +++ b/modules/jenkins_jobs/templates/trigger_timed_15mins.xml.erb @@ -0,0 +1,3 @@ + <hudson.triggers.SCMTrigger> + <spec>*/15 * * * *</spec> + </hudson.triggers.SCMTrigger> diff --git a/modules/jenkins_jobs/templates/trigger_timed_midnight.xml.erb b/modules/jenkins_jobs/templates/trigger_timed_midnight.xml.erb new file mode 100644 index 0000000000..0bfde74060 --- /dev/null +++ b/modules/jenkins_jobs/templates/trigger_timed_midnight.xml.erb @@ -0,0 +1,3 @@ + <hudson.triggers.TimerTrigger> + <spec>@midnight</spec> + </hudson.triggers.TimerTrigger>