0

如果满足特定条件,我正在尝试在 ADO yaml 构建中配置管道。以下是详细信息

  1. 我在 CI 管道所在的单独项目中共享了模板。(让我们说项目'A')
  2. CI 管道存在于一个单独的项目中。(假设项目“B”)

问题:我想在 CI 管道(在项目“B”中)中定义一个条件,该条件在验证 yaml 文件中是否存在来自(项目“A”)的指定模板作为构建步骤后开始构建

4

1 回答 1

0

您是否需要检查模板文件是否存在或比较yaml文件中的一些代码

在您目前的情况下,我们建议您可以尝试将您的模板制作为模板 yaml 文件,然后我们可以使用资源、阶段和管道条件

这是示例演示脚本:

resources:
  repositories:
    - repository: templates
      type: git
      name: Tech-Talk/template
      trigger:
        paths:
          include:
            - "temp.yaml"
        
trigger: none

# variables:
#   - name: Test
#     value: TestGroup

pool:
  vmImage: ubuntu-latest

stages:
- stage: A
  jobs:
  - job: A1
    steps:
     - checkout: templates
     - bash: ls $(System.DefaultWorkingDirectory)
     - bash: | 
        if [ -f temp.yaml ]; then  
        # this is used to check if the file is exist: if [ -f your-file-here ] 
          echo "##vso[task.setVariable variable=FILEEXISTS;isOutput=true]true"
        else
          echo "##vso[task.setVariable variable=FILEEXISTS;isOutput=true]false"
        fi
        
        # or on Windows:
        # - script: echo ##vso[task.setvariable variable=FILEEXISTS;isOutput=true]true
       name: printvar

- stage: B
  condition: eq(dependencies.A.outputs['A1.printvar.FILEEXISTS'], 'true')
  dependsOn: A
  jobs:
  - job: B1
    steps:
    - script: echo hello from Stage B
    
  # - template: temp.yaml@templates
  #   parameters:
  #     agent_pool_name: ''
  #     db_resource_path: $(System.DefaultWorkingDirectory)      
  #     variable_group: ${{variables.Test}}

更新:

如果您需要使用 Windows 代理,请参考此任务:

- task: PowerShell@2
       name: printvar 
       inputs:
         targetType: 'inline'
         script: |
            $file = '$(System.DefaultWorkingDirectory)\temp.yaml'  
            if([System.IO.File]::Exists($file)){
                Write-Host "##vso[task.setvariable variable=FILEEXISTS;isOutput=true]true"
            }
            else{
                Write-Host "##vso[task.setvariable variable=FILEEXISTS;isOutput=true]false"
            }

附上我的测试结果:

在此处输入图像描述

于 2021-03-08T06:19:28.010 回答