We had a developer install server features on all our Test boxes through the custom scripting. This promptly broke all 35 test servers. How am I to patrol 436 processes looking for custom scripts? There needs to be a tag value entered into the deployment process json field for any custom scripts. This should include pre, deploy, post and deploy failed as well as the run a custom script step. We aren’t trying to take away the feature, but currently there is no way to review what they are doing except actually opening up every process and checking them by hand.
Currently I am using this query
Select c.name, a.name, b.JSON
From dbo.Project a, dbo.DeploymentProcess b, dbo.ProjectGroup c
where a.DeploymentProcessId = b.id
and a.ProjectGroupId = c.Id
and a.Name = ‘xxx’ and c.name = ‘yyy’
I load the json into a temp variable and I am scanning for anything that would set custom scripts apart, but I have not found any values to distinguish a custom script from a step template.
Thanks for reaching out. I’m sorry to say that this is definitely not an easy task at all, and that your current SQL approach is pretty much the best one at the moment.
A good way to narrow down the search would be to search the
Events table for events that:
Were created after the day your developer made the change. I would even narrow it down to projects that were modified only that day.
Include the text “Deployment process for” in the column
Messageto only get events related to Deploymeny processes changes.
Once you have that narrowed list of results, use the value of the column
ProjectId to get the JSON of the deployment processes. Then look into that JSON for the code line that broke your machines.
Hope that helps somehow.