Prompt
Use centralized templates and variables for pipeline configurations instead of duplicating or hardcoding values. This improves maintainability, ensures consistency, and makes platform-specific adaptations easier to manage.
Key practices:
- Reference existing templates from
/eng/pipelines/templates/instead of creating duplicates - Include the image variables template
/eng/pipelines/templates/variables/image.ymlin pipelines that reference VM images - Use pool variables (LINUXPOOL, WINDOWSPOOL, MACPOOL) for pool names
- Use demand-based configuration for Windows/Linux and vmImage pattern for Mac
Example:
# Good practice
variables:
- template: /eng/pipelines/templates/variables/image.yml
jobs:
- job: BuildAndTest
pool:
name: $(WINDOWSPOOL)
demands: $(WindowsImageDemand)
Instead of:
# Avoid this approach
jobs:
- job: BuildAndTest
pool:
name: azsdk-pool-mms-win-2022-general
vmImage: windows-2022
This approach makes it easier to update image configurations across all pipelines and supports platform-specific configuration patterns.