Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Schedule a promotion #2265

refortin ·
We use both Recommend and Promotion features in QB 4 in several configurations. Many of our deployments are performed off-hours. I'm looking for a way to schedule a promotion. For example set a schedule to promote the recommended build of a specific configuration at 2:00am on a Friday.
  • replies 5
  • views 1801
  • stars 0
robinshen ADMIN ·
You may set up a separate configuration to run 2:00 every Friday to execute below script (via script step):
groovy:
import com.pmease.quickbuild.*

def srcConf = system.configurationManager.get("path/to/src/configuration")
def srcBuild = srcConf.getLatestRecommended()

Context.push(srcBuild)
try {
def promotion = srcConf.findPromotion("nameOfPromotion")
promotion = system.scriptEngine.installInterpolator(promotion)
promotion.promote(srcBuild, [:]) // the second param is an empty map, you may pass variable name to value map if desired.
} finally {
Context.pop();
}
refortin ·
Hi Robin,

Thanks for this script. It's working perfectly.
Michaelcc73 ·
Quickbuild version 5.0.38 - Tue Oct 15 21:17:23 EDT 2013

We are attempting to accomplish the same goal, however when I run the step that executes the promotion, I am getting a NullPointerException in DefaultBuildEngine:


18:00:55,006 ERROR - Promotion encountered an exception:
com.pmease.quickbuild.QuickbuildException: Failed to run promotion.
at com.amica.acm.quickbuild.plugin.step.runpromotion.PromotionRunner.runPromotion(PromotionRunner.java:146)
at com.amica.acm.quickbuild.plugin.step.runpromotion.RunPromotionStep.run(RunPromotionStep.java:69)
at com.amica.acm.quickbuild.plugin.step.runpromotion.RunPromotionStep$$EnhancerByCGLIB$$67b77adf.CGLIB$run$0(<generated>)
at com.amica.acm.quickbuild.plugin.step.runpromotion.RunPromotionStep$$EnhancerByCGLIB$$67b77adf$$FastClassByCGLIB$$29972f7f.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
at com.amica.acm.quickbuild.plugin.step.runpromotion.RunPromotionStep$$EnhancerByCGLIB$$67b77adf.run(<generated>)
at com.pmease.quickbuild.stepsupport.Step.execute(Step.java:501)
at com.pmease.quickbuild.stepsupport.StepExecutionJob.executeStepAwareJob(StepExecutionJob.java:30)
at com.pmease.quickbuild.stepsupport.StepAwareJob.executeBuildAwareJob(StepAwareJob.java:47)
at com.pmease.quickbuild.BuildAwareJob.execute(BuildAwareJob.java:61)
at com.pmease.quickbuild.grid.GridJob.run(GridJob.java:78)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at com.pmease.quickbuild.DefaultBuildEngine.requestBuild(DefaultBuildEngine.java:1298)
at com.pmease.quickbuild.setting.configuration.promotion.Promotion.promote(Promotion.java:343)
at com.pmease.quickbuild.setting.configuration.promotion.Promotion$$EnhancerByCGLIB$$d6cb8775.CGLIB$promote$14(<generated>)
at com.pmease.quickbuild.setting.configuration.promotion.Promotion$$EnhancerByCGLIB$$d6cb8775$$FastClassByCGLIB$$a0dae229.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:215)
at com.pmease.quickbuild.DefaultScriptEngine$Interpolator.intercept(DefaultScriptEngine.java:269)
at com.pmease.quickbuild.setting.configuration.promotion.Promotion$$EnhancerByCGLIB$$d6cb8775.promote(<generated>)
at com.amica.acm.quickbuild.plugin.step.runpromotion.PromotionRunner.runPromotion(PromotionRunner.java:134)
... 17 more
robinshen ADMIN ·
Please make sure to run this script on server instead of agent.
Michaelcc73 ·
[quote="robinshine"]Please make sure to run this script on server instead of agent.[/quote]

Thanks, that solved the issue.