org.paylogic.jenkins.upmerge
Class UpmergeBuilder

java.lang.Object
  extended by hudson.tasks.BuildStepCompatibilityLayer
      extended by hudson.tasks.Builder
          extended by org.paylogic.jenkins.upmerge.UpmergeBuilder
All Implemented Interfaces:
hudson.ExtensionPoint, hudson.model.Describable<hudson.tasks.Builder>, hudson.tasks.BuildStep

public class UpmergeBuilder
extends hudson.tasks.Builder

UpmergeBuilder!


Nested Class Summary
static class UpmergeBuilder.DescriptorImpl
          Descriptor for UpmergeBuilder.
 
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Nested classes/interfaces inherited from interface hudson.tasks.BuildStep
hudson.tasks.BuildStep.PublisherList
 
Field Summary
 
Fields inherited from interface hudson.tasks.BuildStep
BUILDERS, PUBLISHERS
 
Constructor Summary
UpmergeBuilder()
           
 
Method Summary
 UpmergeBuilder.DescriptorImpl getDescriptor()
           
 boolean perform(hudson.model.AbstractBuild build, hudson.Launcher launcher, hudson.model.BuildListener listener)
          Here we should do upmerging.
 
Methods inherited from class hudson.tasks.Builder
all, getRequiredMonitorService, prebuild
 
Methods inherited from class hudson.tasks.BuildStepCompatibilityLayer
getProjectAction, getProjectAction, getProjectActions, perform, prebuild
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UpmergeBuilder

@DataBoundConstructor
public UpmergeBuilder()
Method Detail

perform

public boolean perform(hudson.model.AbstractBuild build,
                       hudson.Launcher launcher,
                       hudson.model.BuildListener listener)
Here we should do upmerging. So: - Fetch case info using CASE_ID parameter (should be given). - NOT !! Create 'ReleaseBranch' object from case info and a nextBranch object which is releasebranch.copy().next(); - Create ReleaseBranch object from current branch, we may expect that the GatekeeperPlugin set the correct one. - Initiate UpMerge sequence.... - Try to pull new code from nextBranch.getNext(); - Try to merge this new code with releaseBranch(); - Commit this shiny new code. - Set a flag somewhere, indicating that this upmerge has been done. - Repeat UpMerge sequence for next releases until there are no moar releases. - In some post-build thingy, push these new branches if all went well. - We SHOULD not have to do any cleanup actions, because workspace is updated every build. - Rely on the FogbugzPlugin (dependency, see pom.xml) to do reporting of our upmerges. - Trigger new builds on all branches that have been merged.

Specified by:
perform in interface hudson.tasks.BuildStep
Overrides:
perform in class hudson.tasks.BuildStepCompatibilityLayer

getDescriptor

public UpmergeBuilder.DescriptorImpl getDescriptor()
Specified by:
getDescriptor in interface hudson.model.Describable<hudson.tasks.Builder>
Overrides:
getDescriptor in class hudson.tasks.Builder


Copyright © 2004-2014. All Rights Reserved.