It's all about the answers!

Ask a question

continuous integration CI pipeline with RTC with Jazz build system toolkit (without Jenkins server and Jenkins RTC plugin)


GURVINDER SOKHI (731338) | asked Oct 26 '21, 1:20 p.m.

Dear Ralph Schoon, Using RTC with Jazz build system toolkit and build engines (without Jenkins server and Jenkins RTC plugin) how mature and functional rich continuous integration CI pipeline can be built ? Or is Jenkins server and RTC plugin as must have for a customer to build functional rich CI pipelines?

For example without Jenkins server and Jenkins RTC plugin, how can you automatically start the build in RTC, configure the build trigger to poll SCM for change set deliveries on team stream ? A configuration that would automatically runs a build only when a change set delivery is detected on team stream? Is it possible ?

I appreciate with Jenkins and RTC plugin there is Build Trigger "Poll SCM" setting (https://jazz.net/library/article/92827#cjj_bt) that can be enabled to achieve the above however that requires additional overhead of Jenkins deployed etc

2 answers



permanent link
GURVINDER SOKHI (731338) | answered Oct 27 '21, 3:52 a.m.

 Yes we have setup a system including JBE and it is working fine to schedule a build using RTC with Jazz build system toolkit and build engines (without Jenkins server and Jenkins RTC plugin) . However with RTC with Jazz build system toolkit and build engine, there is no option for Build Trigger "Poll SCM" to automatically detect change set delivery on team stream and subsequently trigger a build.

Hence my post with the question. 

 For example without Jenkins server and Jenkins RTC plugin, how can you automatically start the build in RTC, configure the build trigger to poll SCM for change set deliveries on team stream ? A configuration that would automatically runs a build only when a change set delivery is detected on team stream? Is it possible ? If so please attach screenshot of the "Poll SCM" setting option which is not using Jenkins server and Jenkins RTC plugin.


Comments
Ralph Schoon commented Oct 27 '21, 5:18 a.m. | edited Oct 27 '21, 5:38 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

The JBE only looks into the queue of scheduled build requests it can execute and polls the SCM system to infer if there is a change to be accepted. 


Strictly speaking, it does poll the SCM system, but only when it detects a scheduled build to execute. 

WARNIG:

You should be aware, that the SCM polling is not for free and can generate potentially high load on the SCM system in the CCM server.  Each polling, I believe, is an SCM compare workspace operation, depending on the Stream complexity, components, folders, files,... this can generate load on the server and the database, even if intermediate SCM reverse caching proxies are implemented, as suggested. So consider the polling rate. 


Ralph Schoon commented Oct 27 '21, 5:32 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

There is also a suggestion to limit the number of SCM Compare Workspaces on a server: https://jazz.net/wiki/bin/view/Deployment/CLMExpensiveScenarios#Best_practices_AN5 :

As of 5.0.1,you can set a server property to limit the number of comparisons that can happen at the same time (maximum limit of SCM workspace compare scenarios). This value defaults to 0, which allows unlimited comparisons. When limited, the compare operations are queued until other compares finish. The user will see a slower compare or, in the extreme case where the thread waits too long, the compare will fail after 15 minutes.
 
Best practices
When a workspace compare is performed, the service IFileSystemService#compareWorkspace is called. Occurrences of these calls are listed in the active services page of the CCM application. Should there be a large number of calls appearing at once, you may want to limit the number of workspace compares by setting the "Maximum limit of SCM workspace compare scenarios" advanced property to 25% of the available CPU cores


Ralph Schoon commented Oct 27 '21, 5:38 a.m. | edited Oct 27 '21, 5:41 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

 And please also note, that the Build System is competing with user compare workspaces as well. So if you crank up the load to unsustainable levels, users will also see their operations fail. Note that not limiting the compare workspace operations can lead to performance issues, when available CPU and Database resources are depleted. This can also cause server crashes in extreme cases.   


permanent link
Ralph Schoon (63.1k33645) | answered Oct 27 '21, 3:27 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Have you cared to setup a test system including JBE and looked into the examples e.g. JKE Banking?

I would suggest to do so - the setup process for the Sample Project. It can be done on a single test machine.

Read the product documentation about JBE build. Create a build definition using Eclipse and check all the options on the SCM and the other tabs. 

As far as I can tell, the JBE can do pretty much all the Jazz SCM related tasks that Jenkins can. Including obviously not building if there is no change in SCM.

I believe most of our larger customers now use the Jenkins integration since it provides additional capabilities. I see no reason why you should not use Jenkins, especially since the EWM Jenkins Build integration is really good. It can provide with the best of both words.

I would containerize whatever build solution is finally selected. 

Your answer


Register or to post your answer.