Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Why does BuildMaster perform my plan 3-4-5 times?



  • I have never seen this before.

    I create a pipeline, create plans for each stage and on execution BuildMaster executes the plan to perfection, only it does it 3 times, sometimes 4 times, sometimes 5 times.

    What's going on? :-)

    Product: BuildMaster
    Version: 5.8.1



  • Can you share your Pipeline JSON? Perhaps we can help determine it.



  • Sure, see below:

    {
    "Name": "OrbitusAppService.Premnitz",
    "Color": null,
    "Description": "",
    "EnforceStageSequence": true,
    "Stages": [
    {
    "Name": "Integration",
    "Description": null,
    "TargetExecutionMode": "Parallel",
    "Targets": [
    {
    "PlanName": "Deploy OrbitusAppService.Premnitz to Integration",
    "EnvironmentName": "Integration",
    "BuildImporterTemplate": null,
    "ServerNames": [],
    "ServerRoleNames": [],
    "DefaultServerContext": 2
    }
    ],
    "Gate": {
    "UserApprovals": [],
    "GroupApprovals": [],
    "DeploymentWindows": [],
    "AutomaticApprovals": []
    },
    "PostDeploymentPlan": null,
    "PostDeploymentEventListeners": [],
    "AutoPromote": true,
    "Variables": {}
    },
    {
    "Name": "Development",
    "Description": null,
    "TargetExecutionMode": "Parallel",
    "Targets": [
    {
    "PlanName": "Deploy OrbitusAppService.Premnitz to Dev",
    "EnvironmentName": "Development",
    "BuildImporterTemplate": null,
    "ServerNames": [],
    "ServerRoleNames": [],
    "DefaultServerContext": 2
    }
    ],
    "Gate": {
    "UserApprovals": [],
    "GroupApprovals": [],
    "DeploymentWindows": [],
    "AutomaticApprovals": []
    },
    "PostDeploymentPlan": null,
    "PostDeploymentEventListeners": [],
    "AutoPromote": false,
    "Variables": {}
    },
    {
    "Name": "Testing",
    "Description": null,
    "TargetExecutionMode": "Parallel",
    "Targets": [
    {
    "PlanName": "Deploy OrbitusAppService.Premnitz to Test",
    "EnvironmentName": "Testing",
    "BuildImporterTemplate": null,
    "ServerNames": [],
    "ServerRoleNames": [],
    "DefaultServerContext": 2
    }
    ],
    "Gate": {
    "UserApprovals": [],
    "GroupApprovals": [],
    "DeploymentWindows": [],
    "AutomaticApprovals": []
    },
    "PostDeploymentPlan": null,
    "PostDeploymentEventListeners": [],
    "AutoPromote": false,
    "Variables": {}
    },
    {
    "Name": "Acceptance",
    "Description": null,
    "TargetExecutionMode": "Parallel",
    "Targets": [
    {
    "PlanName": "Deploy OrbitusAppService.Premnitz to Accept",
    "EnvironmentName": "Acceptance",
    "BuildImporterTemplate": null,
    "ServerNames": [],
    "ServerRoleNames": [],
    "DefaultServerContext": 2
    }
    ],
    "Gate": {
    "UserApprovals": [],
    "GroupApprovals": [],
    "DeploymentWindows": [],
    "AutomaticApprovals": []
    },
    "PostDeploymentPlan": null,
    "PostDeploymentEventListeners": [],
    "AutoPromote": false,
    "Variables": {}
    },
    {
    "Name": "Production",
    "Description": null,
    "TargetExecutionMode": "Parallel",
    "Targets": [
    {
    "PlanName": "Deploy OrbitusAppService.Premnitz to Prod",
    "EnvironmentName": "Production",
    "BuildImporterTemplate": null,
    "ServerNames": [],
    "ServerRoleNames": [],
    "DefaultServerContext": 2
    }
    ],
    "Gate": {
    "UserApprovals": [],
    "GroupApprovals": [],
    "DeploymentWindows": [],
    "AutomaticApprovals": []
    },
    "PostDeploymentPlan": null,
    "PostDeploymentEventListeners": [],
    "AutoPromote": false,
    "Variables": {}
    }
    ],
    "Variables": {},
    "PostDeploymentOptions": {
    "CreateRelease": true,
    "CancelReleases": false,
    "DeployRelease": true
    }
    }



  • Your "DefaultServerContext" is "AllInEnvironment" (2).

    In this case, you will get one execution per server in each environment. Each execution will be implicitly wrapped with "for server <<servername>> { ... }".

    If, within your plan, you're setting server context by doing something like, "for server PRODSV1 {... }", you should choose "None" (0).



  • OMG I totally overlooked that.

    Thanks!


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation