Does CircleCI 2.0 supports building a project separately in a Multi-Project repo

circle.yml

#1

Does anyone know how to trigger a build only for the project for which code push is done ( Assuming that a github repository contains multiple projects each needs to be built on code push). Currently all projects in my github repo are getting built (using dedicated workflow for each project ) on code push for a project, which I don’t want.

Thanks !


#2

Possible useful links:


#3

Hi Halfer, I have already gone through these links and the solution provided there is not working for me.


#4

I wonder, would you edit your first post to say what you have tried, in that case? Please show code. That will help save the time of people who suggest things that you have already considered.


#5

What I could find is that, solution provided in “Does-circleci-2-0-work-with-monorepos?” is more specific to a single job and not for a complete workflow. In my case I have configured 3 different workflows corresponding to 3 different projects ( e.g A, B, C) residing in the same github repository. When I push code changes for project A it should only trigger workflow corresponding to project A only.
Above solution won’t stop all workflows from getting triggered. The only thing I can do is to stop these workflows once it got triggered. This can be done by putting an if condition inside very first job of each workflow to check if changes done are related with that workflow or not. If not then exit workflow with some error code, which will not be the right way. Errors in build jobs always triggers an email to all who are following the project.


#6

That’s one of the options. Basically, the two are, use Bash/Git or something else to detect which project change, and then only run relevant tests. Or separate the monorepo and it’ll run as expected.


#7

@FelicianoTech : Detecting which project got changed needs all Workflows/Jobs to be triggered first and that is what we don’t want. Logically this solution is as good as letting builds for all projects triggered and then manually going to CirlceCI console and canceling the one which is not required.
Creating separate monorepo for each and every project is not the ideal way especially in our case it gives us more flexibility to manage projects by using single repo. Its a big drawback of CircleCI if we compare it with jenkins or other CI tools. Can’t CircleCI provide it as a feature in future release?


#8

What I wrote were the two options you have right now.

Definitely possible for the future. There’s a Request Request here you can vote up: https://circleci.com/ideas/?idea=CCI-I-208


#9

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.