Dynamic build order

Hi,

We are using "conan package tool" (http://conan.io) that can provide build order of a complex build dependency project.

For example, as shown in figure below; if A project is changed, we can learn build order of dependent projects of P.

It is something like;  [B, [D, F], G] : Meaning first build B, latter D,F in parallel, then G. Finally P can be built.

Conan tool provides this information in json file format.

What is the best way to dynamically trigger B,D,F,G,P build projects by reading this information from json file at the end of A build?

Note1 : We are using teamcity 10

Note 2: Solution of this problem on jenkins is explained in https://jenkins.io/blog/2017/07/07/jenkins-conan/#complex-jenkins-pipeline-operations-managed-and-parallelized-libraries-building.

 

1
1 comment

I'm afraid there is no current (public) plugin for conan, so there are a few approaches:

-Create a custom script that reads the JSON and triggers the builds you require via the REST API: https://confluence.jetbrains.com/display/TCD18/REST+API#RESTAPI-TriggeringaBuild

-Create a custom runner plugin that performs that task and triggers the build through the TeamCity API instead of REST. This will usually allow for tighter integration and better features.

-Set up your configurations with dependencies. This would have a fixed order that isn't dynamically upgraded based on the json file, I'm unaware of how critical this is for conan, as most normal builds expect the graph to be quite stable. If the order is fixed, you could just generate them via the Kotlin DSL, but this doesn't look like your requirement.

0

Please sign in to leave a comment.