The SonarQube Scanners now have a feature to fail the build when the quality level is not at the expected level, thanks to the webhook feature introduced in SonarQube 6.2 and the Jenkins pipeline feature that allows for non-blocking execution of certain parts of the job logic. The new feature uses asynchronous aggregation of metrics on the SonarQube server side, allowing for efficient processing without occupying a CI executor. A clean way to achieve this is by releasing the CI executor and having the SonarQube server send a notification when aggregation is completed, which can then be used by the Jenkins pipeline to take appropriate actions such as sending email notifications or marking the job as failed.