(→AHPSCRIPTS-117)
|
(→AHPSCRIPTS-133)
|
Line 2577: | |||
UnitOfWork.getCurrent().commit();</pre> | UnitOfWork.getCurrent().commit();</pre> | ||
+ | = Roll Back: If Step Fails During Deployment, Look Up Previously Deployed Build and Re-Deploy It = | ||
+ | ==== AHPSCRIPTS-122 ==== | ||
+ | <pre>import com.urbancode.anthill3.runtime.scripting.helpers; | ||
+ | import com.urbancode.anthill3.domain.servergroup.*; | ||
+ | import com.urbancode.anthill3.domain.buildrequest.*; | ||
+ | import com.urbancode.anthill3.domain.buildlife.*; | ||
+ | import com.urbancode.anthill3.services.build.*; | ||
+ | import com.urbancode.anthill3.domain.security.*; | ||
+ | //Get the useful information | ||
+ | currentEnv = EnvironmentLookup.getCurrent(); | ||
+ | currentWorkflow = WorkflowLookup.getCurrent(); | ||
+ | envShortName = currentEnv.getShortName(); | ||
+ | status = StatusLookup.getStatusByName(envShortName); | ||
+ | currentBuildLife = BuildLifeLookup.getCurrent(); | ||
+ | currentBuildRequest = BuildRequestLookup.getCurrent(); | ||
+ | requester = currentBuildRequest.getRequester(); | ||
+ | currentUser = currentBuildRequest.getUser(); | ||
+ | currentBuildProfile = currentBuildLife.getProfile(); | ||
+ | //Determine the last deployed build for a particular environment | ||
+ | previousDeployed = BuildLifeFactory.getInstance().restorePriorMostRecentForProfileAndStatus(currentBuildLife, currentBuildProfile, status); | ||
+ | // Create the new build request | ||
+ | BuildRequest newBuildRequest = new BuildRequest(previousDeployed, currentWorkflow, currentEnv, currentUser, RequestSourceEnum.EVENT, requester); | ||
+ | //store it | ||
+ | newBuildRequest.store(); | ||
+ | //Run the workflow | ||
+ | BuildService.getInstance().runWorkflow(newBuildRequest);</pre> |