【问题标题】:Azure DevOps build YML not conditionals not workingAzure DevOps 构建 YML 不是条件不工作
【发布时间】:2021-03-11 17:55:17
【问题描述】:

我正在尝试根据构建 yml 中的源分支设置构建配置以及设置发布版本变量。

isRelease 在我在不同的分支上进行测试时被适当地设置为 true 或 false,但是,条件不起作用。无论isRelease 是什么(真/假),构建配置始终为“Debug”。我尝试了多种语法。有什么帮助吗?

我有这个:

 trigger:
      branches:
       include:
         - develop,
         - release/*,
         - Release/*
    
    pool:
      name: 'MyPool'
    
    variables: 
      isRelease: $[contains(variables['Build.SourceBranch'], 'release')]
    
      ${{ if eq(variables['isRelease'], 'true') }}:
        buildConfiguration: 'Release'
        version.Major: '1',
        version.Minor: $[counter(variables['version.Major'], 1)]
        versionNumber: $(version.Major).$(version.Minor).$(Build.BuildNumber)'
    
      ${{ if eq(variables['isRelease'], 'false') }}:
        buildConfiguration: 'Debug'
    
    steps...
      echo: $(buildConfiguration) // is echoing literally $(buildConfiguration)

【问题讨论】:

    标签: azure azure-devops yaml


    【解决方案1】:

    尝试去掉附加变量,直接比较源分支,如:

        variables: 
       
          ${{ if contains(variables['Build.SourceBranch'], 'release') }}:
            buildConfiguration: 'Release'
            version.Major: '1',
            version.Minor: $[counter(variables['version.Major'], 1)]
            versionNumber: $(version.Major).$(version.Minor).$(Build.BuildNumber)'
        
          ${{ if not(contains(variables['Build.SourceBranch'], 'release')) }}:
            buildConfiguration: 'Debug'
    

    来自关于模板表达式的 Microsoft 文档:

    在编译时表达式 (${{ }}) 中,您可以访问参数和静态定义的变量

    对我来说,这表明具有运行时设置的变量将无法“提供”该模板表达式。

    【讨论】:

    • 如果我做你的第一个选项,它不会构建,如果我做你的第二个,当我将它回显到日志时它根本不会设置构建配置。
    • 检查,所以['varname]` 语法是你所需要的。如果没有更完整的 YAML,这有点难以调试,但是您可以尝试在此之前执行一个步骤:- pwsh: Write-Host "${{ variables['Build.SourceBranch'] }}"?还有- pwsh: Write-Host "${{ variables['isRelease'] }}"?我想了解分配的内容和未分配的内容。
    • 我用你的语法更新了原帖。
    • source 分支给了我 /refs/heads/branch-name 并且 isRelease 给了我 False (因为我建立在一个不包含发布的分支上。
    • 好的,我想尝试不使用中间变量,直接在源分支之后(见上文)。
    猜你喜欢
    • 1970-01-01
    • 2022-12-13
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多