conan-io / conan-package-tools

Conan Package Tools. Helps with massive package creation and CI integration (Travis CI, Appveyor...)
MIT License
166 stars 71 forks source link

Question: Multiple Profiles and Race Conditions #520

Open Lizabeth-Roberts-Bose opened 4 years ago

Lizabeth-Roberts-Bose commented 4 years ago

Description of Problem, Request, or Question

I have a general question that is something me and my company have struggled with in the past trying to integrate conan into our CI infrastructure.

In general, when we run our CI we want to run conan create -u one time and then apply the same dependency graph to multiple profiles to ensure that both profiles were built using the same versions of various modules within the same run. We currently achieve this via some complicated locking logic that parses the create json file and then applies those versions to the next profile in the list to run.

My question is around the update_dependencies flag and how that handles this scenario. Will it only update the dependencies once, on the first profile run or will it run with -u for each profile we run. The real issue here is that race conditions can occur where within the same CI builds, different versions and graphs of various modules can be used by two different profile runs.