diff --git a/manifests/site.pp b/manifests/site.pp index 083102532b..4514bb1b92 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -200,6 +200,7 @@ node "jenkins.openstack.org" { site => "openstack", projects => [ 'cinder', + 'gerrit', 'glance', 'keystone', 'nova', diff --git a/modules/jenkins_jobs/files/modules/builders.py b/modules/jenkins_jobs/files/modules/builders.py index a2ee2bd0c6..cb04426743 100644 --- a/modules/jenkins_jobs/files/modules/builders.py +++ b/modules/jenkins_jobs/files/modules/builders.py @@ -43,6 +43,16 @@ class builders(object): def _gerrit_git_prep(self, xml_parent): self._add_script(xml_parent, '/usr/local/jenkins/slave_scripts/gerrit-git-prep.sh {site}'.format(site=self.data['main']['review_site'])) + def _maven_test(self, xml_parent): + self._add_script(xml_parent, 'mvn test') + + def _maven_package(self, xml_parent): + self._add_script(xml_parent, 'mvn package') + + def _gerrit_package(self, xml_parent): + self._add_script(xml_parent, + '/usr/local/jenkins/slave_scripts/package-gerrit.sh') + def _pep8(self, xml_parent): self._add_script(xml_parent, 'tox -v -epep8 | tee pep8.txt') diff --git a/modules/jenkins_jobs/files/modules/publisher_war.py b/modules/jenkins_jobs/files/modules/publisher_war.py new file mode 100644 index 0000000000..07bb79fd48 --- /dev/null +++ b/modules/jenkins_jobs/files/modules/publisher_war.py @@ -0,0 +1,41 @@ +#! /usr/bin/env python +# Copyright (C) 2012 OpenStack, LLC. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +# Jenkins Job module for war publishers +# To use you add the following into your YAML: +# publish: +# site: 'nova.openstack.org' +# warfile: 'gerrit-war/target/gerrit*.war' +# target_path: 'tarballs/ci/' + +import xml.etree.ElementTree as XML + +class publisher_war(object): + def __init__(self, data): + self.data = data + + def gen_xml(self, xml_parent): + site = self.data['publisher']['site'] + publishers = XML.SubElement(xml_parent, 'publishers') + archiver = XML.SubElement(publishers, 'hudson.tasks.ArtifactArchiver') + XML.SubElement(archiver, 'artifacts').text = self.data['publisher']['warfile'] + XML.SubElement(archiver, 'latestOnly').text = 'false' + scp = XML.SubElement(publishers, 'be.certipost.hudson.plugin.SCPRepositoryPublisher') + XML.SubElement(scp, 'siteName').text = site + entries = XML.SubElement(scp, 'entries') + entry = XML.SubElement(entries, 'be.certipost.hudson.plugin.Entry') + XML.SubElement(entry, 'filePath').text = self.data['publisher']['target_path'] + XML.SubElement(entry, 'sourceFile').text = self.data['publisher']['warfile'] + XML.SubElement(entry, 'keepHierarchy').text = 'false' diff --git a/modules/jenkins_jobs/files/projects/openstack/gerrit.yml b/modules/jenkins_jobs/files/projects/openstack/gerrit.yml new file mode 100644 index 0000000000..09094eb122 --- /dev/null +++ b/modules/jenkins_jobs/files/projects/openstack/gerrit.yml @@ -0,0 +1,212 @@ +--- +modules: + - properties + - scm + - assignednode + - trigger_gerrit + - builders + - publisher_none + +main: + name: 'gate-gerrit-merge' + github_org: 'openstack-ci' + review_site: 'review.openstack.org' + project: 'gerrit' + authenticatedBuild: 'true' + disabled: 'false' + +trigger: + triggerOnPatchsetUploadedEvent: 'false' + triggerOnChangeMergedEvent: 'false' + triggerOnCommentAddedEvent: 'true' + triggerOnRefUpdatedEvent: 'false' + triggerApprovalCategory: 'APRV' + triggerApprovalValue: 1 + failureMessage: 'This change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.' + projects: + - projectCompareType: 'PLAIN' + projectPattern: 'openstack-ci/gerrit' + branchCompareType: 'ANT' + branchPattern: '**' + +builders: + - gerrit_git_prep + +scm: + scm: 'false' + +assignednode: + node: 'oneiric' + +--- +modules: + - properties + - scm + - assignednode + - trigger_gerrit + - builders + - publisher_none + +main: + name: 'check-gerrit-merge' + github_org: 'openstack-ci' + review_site: 'review.openstack.org' + project: 'gerrit' + authenticatedBuild: 'true' + disabled: 'false' + +trigger: + triggerOnPatchsetUploadedEvent: 'true' + triggerOnChangeMergedEvent: 'false' + triggerOnCommentAddedEvent: 'false' + triggerOnRefUpdatedEvent: 'false' + overrideVotes: 'true' + gerritBuildSuccessfulVerifiedValue: 1 + gerritBuildFailedVerifiedValue: -1 + failureMessage: 'This change was unable to be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.' + projects: + - projectCompareType: 'PLAIN' + projectPattern: 'openstack-ci/gerrit' + branchCompareType: 'ANT' + branchPattern: '**' + +builders: + - gerrit_git_prep + +scm: + scm: 'false' + +assignednode: + node: 'oneiric' + +--- +# check-gerrit-unittests +modules: + - properties + - scm + - assignednode + - trigger_gerrit + - builders + - publisher_none + +main: + name: 'check-gerrit-unittests' + review_site: 'review.openstack.org' + github_org: 'openstack-ci' + project: 'gerrit' + authenticatedBuild: 'true' + disabled: 'false' + +trigger: + triggerOnPatchsetUploadedEvent: 'true' + triggerOnChangeMergedEvent: 'false' + triggerOnCommentAddedEvent: 'false' + triggerOnRefUpdatedEvent: 'false' + overrideVotes: 'true' + gerritBuildSuccessfulVerifiedValue: 1 + gerritBuildFailedVerifiedValue: -1 + failureMessage: '' + projects: + - projectCompareType: 'PLAIN' + projectPattern: 'openstack-ci/gerrit' + branchCompareType: 'ANT' + branchPattern: '**' + +builders: + - gerrit_git_prep + - maven_test + +scm: + scm: 'true' + +assignednode: + node: 'oneiric' + +--- +# gate-gerrit-unittests +modules: + - properties + - scm + - assignednode + - trigger_gerrit + - builders + - publisher_none + +main: + name: 'gate-gerrit-unittests' + review_site: 'review.openstack.org' + github_org: 'openstack-ci' + project: 'gerrit' + authenticatedBuild: 'true' + disabled: 'false' + +trigger: + triggerOnPatchsetUploadedEvent: 'false' + triggerOnChangeMergedEvent: 'false' + triggerOnCommentAddedEvent: 'true' + triggerOnRefUpdatedEvent: 'false' + triggerApprovalCategory: 'APRV' + triggerApprovalValue: 1 + failureMessage: '' + projects: + - projectCompareType: 'PLAIN' + projectPattern: 'openstack-ci/gerrit' + branchCompareType: 'ANT' + branchPattern: '**' + +builders: + - gerrit_git_prep + - maven_test + +scm: + scm: 'true' + +assignednode: + node: 'oneiric' + +--- +# gerrit-package +modules: + - properties + - scm + - assignednode + - trigger_gerrit + - builders + - publisher_war + +main: + name: 'gerrit-package' + review_site: 'review.openstack.org' + github_org: 'openstack-ci' + project: 'gerrit' + authenticatedBulid: 'false' + disabled: 'false' + +trigger: + triggerOnPatchsetUploadedEvent: 'false' + triggerOnChangeMergedEvent: 'false' + triggerOnCommentAddedEvent: 'false' + triggerOnRefUpdatedEvent: 'true' + triggerApprovalCategory: '' + triggerApprovalValue: '' + failureMessage: '' + projects: + - projectCompareType: 'PLAIN' + projectPattern: 'openstack-ci/gerrit' + branchCompareType: 'REG_EXP' + branchPattern: '^(?!refs/).*$' + +builders: + - gerrit_git_prep + - gerrit_package + +scm: + scm: 'true' + +assignednode: + node: 'oneiric' + +publisher: + site: 'nova.openstack.org' + warfile: 'gerrit-war/target/gerrit*.war' + target_path: 'tarballs/ci/' diff --git a/modules/jenkins_slave/files/slave_scripts/package-gerrit.sh b/modules/jenkins_slave/files/slave_scripts/package-gerrit.sh new file mode 100644 index 0000000000..1254ce4e81 --- /dev/null +++ b/modules/jenkins_slave/files/slave_scripts/package-gerrit.sh @@ -0,0 +1,7 @@ +#!/bin/bash -xe + +rm -fr ~/.m2 +rm -fr ~/.java +./tools/version.sh --release +mvn clean package -Dgerrit.include-documentation=1 -X +./tools/version.sh --reset