We currently run TeamCity with Bitbucket & JIRA, on premises, however due to these both becoming EOL, We are looking at integration of Teamcity with Azure Devops (GIT), which is already in use elsewhere within the organization. Currently, we aren't using TFS build and release pipelines, but sticking with TeamCity, as it offers more flexibility.
We have most things working, simply pushing repos and repointing the VCS roots. However one aspect that is unclear is how Build Validation works.
Within TeamCity, there are 2 build features.
1/ Commit Status Publisher (this is how Teamcity and Bitbucket interact). This can configured to point at devops and the status is shown for each build whenever a new commit is pushed, and a build is triggered. (in the same was a Bitbucket status publishing)
2/ Pull Requests. It's unclear what this does, it seems to only trigger a build when a PR is created, it's also unclear how it interacts with the other build feature above. Understanding use cases for these would be helpful, the docs aren't clear.
In addition to this, within Devops, there is a Build Validation setting within branch policies. This wants me to select my devops pipeline, of which there is none, as we aren't using devops pipelines.
I'm wondering how with 3x options, we can configure our setup to prevent merges on failed build, which seems like a very key requirement for any CI build platform.
Right now, I'm seeing the following in Devops, “Unable to queue build”, when I have build validation enabled, I assume this is because no devops pipeline is configured.
Is it actually possible to block pull requests with failed builds uisng TeamCity and Devops combo? If so, how??