Sometimes it just isn't practical to head out into the ocean to catch your own deployment fish. Or the metadata gods don't favor your change set with a fresh catch.
What are you to do if the deployment fish aren't biting?
That is quite improper... good luck!
— NA8 Pepper (@SForceBeWithYou) March 31, 2018
Is there a guide to making #deploymentfish ? @deploymentfish
JavaScript to the rescue!
Experimenting with @deploymentfish anatomy. Too much Tail? pic.twitter.com/VNp0imQ4I7
— Daniel Ballinger 🦈 (@FishOfPrey) November 20, 2016
A few moments of playing on the /changemgmt/monitorDeploymentsDetails.apexp page reveals that JSON data about the current deployment status flows through SfdcApp.MonitorDeployment.InProgressComponent.refreshInProgressSection
. We can call the same function ourselves and manipulate the totalComponentsCount
and succeededComponentsCount
data as required:
SfdcApp.MonitorDeployment.InProgressComponent.refreshInProgressSection(Sfdc.JSON.parse('{"hasErrors":false,"hasFatalError":false,"refreshInternalInMillis":3000,"hasCodeCoverageError":false,"totalTestsCount":20,"totalComponentsCount":4,"succeededComponentsCount":21,"isComponentSaveFailing":false,"isDeployComplete":true,"failedComponentsCount":0,"failedTestsCount":0,"isDeployCanceled":false,"completedDate":"4/1/2018 1:33 AM","hasTestRunStarted":false,"isCheckOnly":true,"isTestRunFailing":false,"isAbortRequested":false,"hasPayloadError":false,"isTestRunRequired":false,"stateDetail":"","succeededTestsCount":20,"deployStatus":"Succeeded"}'), !0);
Better yet, we can wrap it in our own function to call as required.
function deploymentFish(a, b) { var c = Sfdc.JSON.parse(document.getElementById(chartDataHiddenElementId).value); c.succeededComponentsCount = a; c.totalComponentsCount = b; document.getElementById(chartDataHiddenElementId).value = Sfdc.JSON.stringify(c); SfdcApp.MonitorDeployment.InProgressComponent.refreshInProgressSectionBasedOnServerData(); }
Or, if you prefer, in bookmarklet form: (Installation link for Deployment Fish)
javascript:(function(){ var d = prompt('Deployment fish size?', '17/14'); var a = parseInt(d.split('/')[0]); var b = parseInt(d.split('/')[1]); var c = Sfdc.JSON.parse(document.getElementById(chartDataHiddenElementId).value); c.succeededComponentsCount = a; c.totalComponentsCount = b; document.getElementById(chartDataHiddenElementId).value = Sfdc.JSON.stringify(c); SfdcApp.MonitorDeployment.InProgressComponent.refreshInProgressSectionBasedOnServerData(); })();