org.paylogic.jenkins.upmerge
Class UpmergeBuilder
java.lang.Object
hudson.tasks.BuildStepCompatibilityLayer
hudson.tasks.Builder
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 classes/interfaces inherited from interface hudson.ExtensionPoint |
hudson.ExtensionPoint.LegacyInstancesAreScopedToHudson |
| Nested classes/interfaces inherited from interface hudson.tasks.BuildStep |
hudson.tasks.BuildStep.PublisherList |
| Fields inherited from interface hudson.tasks.BuildStep |
BUILDERS, PUBLISHERS |
| 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 |
UpmergeBuilder
@DataBoundConstructor
public UpmergeBuilder()
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.