<< Back to previous view

[QB-3449] Need an advice on build number of multiple configurations
Created: 04/Oct/19  Updated: 12/Oct/19

Status: Closed
Project: QuickBuild
Component/s: None
Affects Version/s: 9.0.11
Fix Version/s: None

Type: Task Priority: Major
Reporter: Phong Trinh Assigned To: Robin Shen
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
 I have the following configurations:
 ConfigA triggers ConfigB
 ConfigA triggers ConfigC
 ConfigB triggers ConfigD

 How to set up the build numbers of the configurations to make the follows happen:
 I run ConfigA, the build number of all of the configurations are the same, for example 1. I run ConfigB, the build number of ConfigB and ConfigD are 2. Then I run ConfigA again, the build number of all of the configurations are now 3.

 Any advice is appreciated.

 Comments   
Comment by Robin Shen [ 05/Oct/19 12:24 AM ]
1. Configure A's next build version as a number
2. Configure B,C and D's build version as ${vars.getValue("buildVersionOfA")}
3. For every triggering step, define the triggering property "buildVersionOfA" with value set to ${build.version}
Comment by Phong Trinh [ 07/Oct/19 05:23 PM ]
I set the build version as your advice and then ran the follows:
 1) Ran ConfigA, the build version of all of the configurations are 0 which was as expected.
 2) Ran ConfigB and got an error because the variable, buildVersionOfA was not defined. Then I added the variable and ran ConfigB, the build number never changed. The issue is that the version of ConfigB and ConfigD is not bumped up when I run ConfigB.
Comment by Robin Shen [ 07/Oct/19 11:36 PM ]
I misunderstood your intention previously. Below steps will do exactly what you want:
1. Assume A, B, C and D has a common ancestor configuration, say "P". In "P" define a variable say "version" with initial value set to "1"
2. In "P", define next build version as ${vars.getValue("upstreamVersion")!=null? vars.getValue("upstreamVersion"): vars.get("version").increase())}
3. In A, B, C and D, edit the next build version to have them inherit from "P" (note if "P" is not the direct parent, you will need to change all next build version in intermediate configurations to inherit from parent)
4. In "trigger other build" step of A, B and C, define variable "upstreamVersion" with value set to "${build.version}"
Comment by Phong Trinh [ 08/Oct/19 02:34 AM ]
Thank you very much, Robin. I am going to try this and will keep you informed.
Comment by Phong Trinh [ 09/Oct/19 01:02 AM ]
 The solution works great for me. Thank you very much for your help. The more I work on QuickBuild, the more I like it. It is one of the best CI tools.
 May I ask another question if you don't mind? I have ConfigA, and ConfigB trigger ConfigC. The duration of ConfigA and ConfigB may be changed. How can I set up the configurations to make the last one finished trigger ConfigC? For example, if ConfigA finishes last than it will trigger ConfigC. If next time ConfigB finishes last than it will trigger ConfigC. Any advice is appreciated. Thank you in advance.
Comment by Robin Shen [ 09/Oct/19 11:26 PM ]
I guess the underline logic is that C should not be fired before A or B finishes. If so, you may make C depends on A and B. And then fires C directly.
Comment by Phong Trinh [ 11/Oct/19 02:30 AM ]
 It works. Thank you, Robin.
Generated at Thu Apr 25 09:57:01 UTC 2024 using JIRA 189.