History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-4024
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Robin Shen
Reporter: Phong Trinh
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Support higher usage of build condifurations

Created: 07/Sep/23 02:53 PM   Updated: 13/Sep/23 11:20 PM
Component/s: None
Affects Version/s: 12.0.19
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: Linux and Windows


 Description  « Hide
 I have build configurations as follows:
  On-demand >
    Release_Build
    Debug_Build

  When a user runs On-demand, it prompts for selecting Release_Build and/or Debug_Build. If another user runs On-demand, his/her builds will be put in the queue to wait for the builds of the previous user to be completed. Each of these builds takes ~2 hours to complete. Now I has more many users to use this on-demand. Is there a better way to support this high usage? Please advise.

 Thanks,
ptrinh

 All   Comments   Work Log   Change History      Sort Order:
Robin Shen [07/Sep/23 11:47 PM]
So you want to run builds concurrently in this case? If so, please make sure to turn on "Concurrent" option in general setting of the configuration which you want to run builds concurrently inside. Also make sure master step of the configuration allow to run on multiple nodes as otherwise there will be only one configuration workspace which will limit concurrency of the build.

Phong Trinh [08/Sep/23 01:25 PM]
Thank you for promptly response. Yes, I would like to run the builds concurrently. I think I didn't provide enough information and apologize for that. When a user runs on-demand build, he/she needs to provide what perforce branch/stream that the source code will be synced from and what build(s) to run. The next user may have different selections for his/her build(s). I think i can not run builds concurrently inside Release_Build or Debug_Build. I am thinking of this option:
  Create configurations:
  
 On-demand >
    Release_Build_1
    Release_Build_2
    Debug_Build_1
    Debug_Build_2

 The selections are the same: Perforce branch, Release_Build and/or Debug_Build.

 When user1 selects branchA, and Reease_Build, the process will choose available configuration to run for example, Release_Build_1
 Next when user2 select branchB, and Release_Build, the process will choose available configuration to run on. In this case, it runs on configuration, Release_Build_2.
 Next when user3 select branchC, and Release_Build, the process will choose available configuration to run on. In this case, it will wait for Release_Build_1 or Release_Build_2 to be available.
 It is similar for Debug Builds
 If this is ok, the question is that how to check for available configuration and to wait for Release_Build_1 and Release_Build_2 to be available.

 Thanks,
ptrinh

Phong Trinh [08/Sep/23 01:28 PM]
I was also thinking of creating configurations of Release_Builds_1 and Release_Build_2 at run time, and deleted them after the builds are done, but the build logs would be gone after the configurations were deleted. I think this option doesn't work.

Robin Shen [08/Sep/23 02:22 PM]
Why not just create a single release and debug configuration? When user1 requests to run branchA for release, just run the release configuration. And you can configure the release configuration to be able to run concurrently as I mentioned before. Why bother creating two release configurations to complicate things?

Phong Trinh [08/Sep/23 02:33 PM]
Thank you for your response.
 If user2 requests to run branchB for release in a different time user1, and the release build of user1 is still running. Does the release build of user2 need to be waited? If both of them will be running, if one of the builds is successful, and the other one is failed, QB reports as release build as failed build?

Robin Shen [08/Sep/23 02:40 PM]
They will run in the same time. If one succeeds and another fails, you simply see a successful build and a failed build in same configuration.

Phong Trinh [08/Sep/23 03:21 PM]
In that cause, I think the build of Release configuration marked as red/failure. May i setup email notification for each of the build separately? So user1 will not receive failure notification if build of user2 is failed?

Robin Shen [08/Sep/23 09:52 PM]
Yes of course. You can set up build notifications to only send to user who submitted the build.

Phong Trinh [11/Sep/23 05:00 PM]
Thank you, Robin! I am going to give it a try.

Phong Trinh [13/Sep/23 03:07 PM]
It works great for me. Thank you very much!

Robin Shen [13/Sep/23 11:20 PM]
No problem. Let me know if you have any other questions.