Unable to queue PR Validation - azure

I created a pull request in Azure DevOps but the build was not started, it says "Required Check broken, Unable to queue PR Validation"
Any idea, how this could be resolved. Previously the build used to start automatically but this time it did not.

You can set a policy requiring PR changes to build successfully before the PR can complete.
The pipeline and the pull request pipeline should be created from same repositories if not you will face an error "Unable to queue PR validation."
Please find the Build Validation document and the related SO for complete information.

Related

Commit Messages when a Build Queued over REST API in Azure Pipelines

I am triggering a Pipeline from another Pipeline over REST API, which works fine but one thing is annoying me.
I could not find a way to display with queued Pipeline original Commit Message of the Triggering pipeline.
There is a build in variable '$(Build.SourceVersionMessage)' which contains the information I need but I could not find a way to pass this information to triggered workflow so it can be displayed.
Following fields existing the REST API, I though the correct field would be 'triggerInfo' but that didn't changed anything in displayed build message.
Any idea how can I transfer this information and display it?

Detect a build requested by pull request and one run by any updates to the PR

I currently have a task that I intend to run only once when a PR is created. Any pipeline runs due to new commits should not trigger the task. I was wondering if there is a way to detect the runs triggered by changes to code in the PR? When I use the predefined variable $(Build.Reason) I get back PullRequest for both builds(One triggered when PR is created and other when updates are made to PR).
This is what I have in my pipeline and I have enabled build validation for my pipeline.
trigger:
- master
pr:
- master
I don't think there's a way to differentiate the "PR is created" and "PR is updated" build reasons based only on the predefined variables.
However, you can choose a different route depending on what this task you should only run once is. If it is something that can be wrapped into a service with a public endpoint, you can try leveraging the Webhooks.
So, if this is an option for you, try the following:
wrap the functionality required to run only on the PR creation into the service with the public endpoint
create a webhook, choose "Pull request created" event type and enter the public URL of your service
As a result, your build logic won't branch depending on the build reason, and that specific action will be run by the webhook.
I understand it all sounds like a hack and unnecessary complexity, but it's up to you to decide whether it fits your case. At least, this is possible technically.

GitLab Merge Request has Pipeline Failure:--> ERROR: Job failed: execution took longer than 1h0m0s seconds

I'm don't know much about GitLab it seems. I've created a Merge Request and uploaded the modified source code files to GitLab.
But, I'm getting emails that say pipeline failed. I've attached an edited image showing the error that I get. I tried pressing the "Retry" button but I immediately get the same error message.
The error message is, "ERROR: Job failed: execution took longer than 1h0m0s seconds."
What can I do to resolve this problem? I need step by step details of how to do this.
My employer wouldn't want me to publish any more information than this, sorry it's proprietary.
GitLab Merge Request has Pipeline Failure

Tear Down Resource Groups on PR Completion

I am using Pull Request Builds as outlined below to create a resource group with contained resources
https://learn.microsoft.com/en-us/azure/devops/pipelines/release/deploy-pull-request-builds?view=azure-devops
This all works as expected and I am using the SourceBranch of the Pull Request to name by new Resource Group.
My intention is to then delete the Resource Group automatically on completion of the PR. I believed this could be achieved by using another Release pipeline triggered on the build triggered by the PR merge to Master. The issue is that I have no reference to the Branch name in this new Release, the SourceBranch is 'master'
Can anyone come up with a solution? Essentially I need to delete a Resource Group named after a Branch on completion of a PR which merges said branch to master.
There may be multiple PRs in review at any one time so I would prefer that the solution does not queue any stages.
The issue is that I have no reference to the Branch name in this new Release, the SourceBranch is 'master'
The Pull Request triggered release pipeline is triggered by refs/pull/x/merge. This is related with the Pull Request. Then the Pull Request information can be obtained through environment variables.
When the Pull Request Completes, the reason for running the release pipeline is that the master branch has changed. The trigger branch is master.
In this case, the variable BUILD_SOURCEBRANCHNAME is master.
Based on my test, I couldn't find the environment variables related to Pull Request Source Branch.
So I am afraid that there is no such variable could meet your requirements.
For a workaround:
If you want to get the expected source branch name , you may need to use the target branch to run the release pipeline again(Manual or Continuous deployment trigger).You need to make sure that the trigger branch is pull request source branch. Then the BUILD_SOURCEBRANCHNAME variable could be the expected one.
not queue any stages.
You could try to set the Artifacts filters (include and exclude) in Release Pipeline stages.
For example:
Result:
Hope this helps.

How can I create some sort of policy for a pull request to be rejected if there are x amount of bug items in the back log

I am trying to find a way to reject a pull request into my master branch if there are still bug work items open in my back log in azure devops. I know I can create pre-deployment gates in the release pipeline to prevent release but I want to stop the build pipeline under that condition. to be more specific im trying to make sure my pull request to start my build to be later be released doesn't contain a critical bug in the back log items
How can I create some sort of policy for a pull request to be rejected if there are x amount of bug items in the back log
AFAIK, there is no such out of box way to do this.
To receive this, you could create a Build validation on the master branch:
Branches->master->Branch policies->Build validation
Then, create a build pipeline with Agentless job:
and select Shared Queries, set the Upper threshold for the Query work items task:
Now, we just need to create a Shared Query to get the all the open bug work items:
Hope this helps.

Resources