|
(→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> | ||