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!

Sequencing targets within a pipeline stage without template



  • Referring to the original question http://inedo.com/support/questions/5187, the answer accepted there is to use template. Template works, but it may not be ideal for all cases:

    1. Assume pipeline 1 has a stage X which has many plans. Same stage in a pipeline 2, also has these plans, but needs to execute in different sequence. And yet other pipelines 3, 4, 5, etc., with same plans but different sequence. If using templates, it might lead to many similar templates (like creating template X1, X2, X3, etc.).

    Also in the pipeline we can't directly see what's inside the template, compared to plans directly in the pipeline where we'll be able to see.

    1. In the pipeline and stage, we can configure server for each plan, which is quite nice for reuse. It seems we are not able to configure that if within a template.

    Template is good, but creating concrete templates may be too much work for only the sequence, especially when the combination of different sequences increases.

    It may be good to introduce some sort of sequence wrapper (anonymous template?) in the pipeline stage. Or more granularly and do away wrappers/templates, If we can specify the execution sequence number directly on the plan, then it can execute the plans sequentially according to the number; for the same number, plans will be executed concurrently.

    Something nice to have for your consideration.

    Product: BuildMaster
    Version: 5.3.6



  • We researched this a bit, and came up with an idea...

    We could add the TargetExecutionMode (Sequential or Parallel) to the stage definition; it would look something like this.

    {
      "Name": "Stage1",
      "Description": null,
      "Targets": [
        {  "PlanName": "Plan1", "EnvironmentName": "Env1" },
        {  "PlanName": "Plan2", "EnvironmentName": "Env2" },
        {  "PlanName": "Plan3", "EnvironmentName": "Env1" },        
      ],
      "TargetExecutionMode": "Sequential"
    }
    

    With sequential mode, it would run Plan1, Plan2, and then Plan3. A failure in Plan1 would cause Plan2 not to execute.

    What do you think of the idea?



  • This idea should work.

    It's something similar to the stage sequence enforcement, which is working fine for my use. With this feature, we can enforce the sequence within the stage as well.



  • Stumped into this issue again when configuring some new pipelines, I think the sequential target execution mode is a great idea. It could be very helpful in keeping the pipeline well organized.

    When could we expect this feature to be available? it's badly needed :).



  • This does involve a bit of refactoring... but we should be able to get this into 5.6, shipping on the 18th.



Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation