We have mono repo which look like below and each folder has one solution to build.
Build pipeline setup as below for each of the three solution mentioned above.
We have created three “Status check” policies, one per each solution folder like below.
We expect above policy setup should help us to apply only those status check policies where code changes are done but that’s not happening.
We have done changes only in mycode/Common but this triggers all three builds as this change impacts Product1 & Product2.
This means all three solutions are analyzed and all of them will publish Quality Gate Results. This is where problem arises. Let’s assume mycode/Common quality gate fails and PR cannot be merged now but builds for Product1 & Product2 are still running and they publish their quality gate and both of them are passed. This overrides initially failed quality gate and now PR can be merged.
Question is are we doing something wrong here? Is there anything wrong with SonarQube integration with our pipelines?
We are using SonarQube DE 9.3.0 version along with AzureDeops Server.
It’s not clear to me from your screenshots, which DevOps Platform you’re using. But can you confirm that you’re using Enterprise Edition and that you’ve followed the specific monorepo setup steps for your platform (here are the GitHub docs)?
As mentioned in my post we are using SonarQube Developer edition 9.3.0 and AzureDevOps Server 2020. Do you mean it’s not possible to report correct quality gate status when multiple builds are triggered and each one of them publishing quality gate results without enterprise edition?
Yes. PR decoration on monorepos is not supported below Enterprise Edition.
When I look at SQ DE I cannot see SonarSource has mentioned “PR decoration on monorepos is not supported below Enterprise Edition.”
What website mentions is as below.
Don’t you as organization feel that you should have clearly mentioned PR decoration with monorepo not supported? Following is the different between DE and EE from website. Do you think it’s easy to guess difference between “Branch & Pull Request Analysis” for DE & “Branch & Pull Request” for EE means ‘PR decoration for monorepo not supported in DE’?
I strongly feel, this is cheating as such a important feature is not highlighted as unavailable in DE clearly.
I recognize that you’re disappointed, and I’m sorry about that.
Support for PR decoration in monorepos
Is clearly listed as a feature of Enterprise Edition and not as a feature of Developer Edition.
Do we feel, organizationally, that each edition’s listing should be explicit about the features that only start in higher versions? No. I see no need, for example, to say in descriptions of Community Edition that PR decoration starts in Developer Edition and that reporting starts in Enterprise Edition.
At the same time, I do see an opportunity to explicitly call out on the Developer Edition page something like “Looking for PR decoration of Monorepos? Check out Enterprise Edition.” And I’ll raise that internally. Thanks for the feedback.
When we did analysis of features you offer in Developer Edition and did POC with trial license we were sure we don’t need Enterprise Edition as what it adds (Portfolio Management, Executive Reporting, Security Reports, Project Transfer, 27 Programming Languages Covered) we were not looking for as of last year.
We have purchased Developer Edition license for 2 million lines of code which costs use EUR 6000/- but when I look into Enterprise Edition cost I think, what we will need to go for 5 million lines of code which costs us EUR 25000/-.
My reflection is SonarSource should give some thought about cost different which is EUR 19000/- which is huge for Monorepo integration when we are not looking for other features you are offering under Enterprise Edition.
I rest my case here.