Azure DevOps YAML Pipelines metadata
For a big migration project inside Azure DevOps to move hundreds of repos and pipelines from one project to another, I have been blocked with the following pipeline issue when running a migrated yaml pipeline in the destination project.
I took the most simple starter pipeline as an example to only focus on the agent pool issue. This error message (“No pool was specified.”) doesn’t make any sense when you look at the yaml pipeline definition: the pipeline does point to a Microsoft-hosted agent with the virtual machine image “ubuntu-latest”. Nothing special here.
It took me a bit to finally understand that every yaml pipeline in Azure DevOps always contains some metadata and it’s the combination of the yaml definition file and the metadata which constructs the full pipeline in the end. With other platforms like GitHub, there won’t be any metadata and the GitHub action will only rely on the yaml definition/workflow file. No magic. The YAML file tells you the truth.
Back to the sample pipeline in Azure DevOps: the yaml definition is 100% valid but in the background the pipeline is not really tied yet to an agent pool which can be identified when you navigate to the “Triggers” section of the pipeline.
This “Trigger” option in the navigation menu will reveal the YAML tab where the Default agent pool for YAML has not been set and this explains why you get the specific error while running the pipeline.
Select the Microsoft-hosted “Azure Pipelines” from the dropdown and notice the extra comment about the vmImage value you need to pass via the YAML pipeline definition file.
Save the pipeline and the pipeline run will not be blocked anymore. Hope this helps you some troubleshooting!