![](/img/trans.png)
[英]Azure pipeline yaml: Cannot use strategy matrix variable in conditions
[英]Overwrite Variable in Azure Yaml Pipeline not working
我的意图是使用默认变量运行管道。 变量createRelease
应该指示除了 `TestApplication.
在伪代码中:
RunJob('TestApplication')
if(!createRelease)
RunJob('BuildForDev')
if(createRelease)
RunJob('BuildForUatRelease')
它不会以某种方式覆盖createRelease
的值。 任何人有什么想法为什么不呢?
我的管道 yaml 看起来像:
trigger:
- main
- feature/*
pool:
vmImage: ubuntu-latest
variables:
- name: createRelease
value: false
stages:
- stage: CI_Build
displayName: Build and Test App
jobs:
- job: TestApplication
displayName: Building and testing
condition: always()
steps:
- task: Bash@3
displayName: Maven Test Application
inputs:
targetType: 'inline'
script: |
echo 'mvn test'
- job: BuildForDev
displayName: Build Application for Develop
dependsOn: TestApplication
condition: |
and(
succeeded('TestApplication'),
eq(variables['Build.SourceBranchName'], 'main'),
eq(variables.createRelease, 'false')
)
steps:
- task: Bash@3
displayName: Maven test Application
inputs:
targetType: 'inline'
script: |
echo mvn test
- job: BuildForUatRelease
displayName: Release Application
dependsOn: TestApplication
condition: |
and(
succeeded('TestApplication'),
eq(variables['Build.SourceBranchName'], 'main'),
eq(variables.createRelease, 'true')
)
steps:
- task: Bash@3
displayName: Set Git Credentials
inputs:
targetType: 'inline'
script: |
echo 'mvn release prepare'
Pipeline 中可被覆盖的变量定义:
我如何在运行前设置createRelease
:
您正在为 YAML 中的变量分配值,该值将优先于队列时定义的变量。 这样想可能会有所帮助:
createRelease: True
变量对管道进行排队createRelease: False
的值解决:
或者,您可能需要考虑创建参数而不是变量:
trigger:
parameters:
- name: createRelease
displayName: 'Create a Release'
type: boolean
default: false
stages:
- stage: ...
jobs:
- job: ...
steps:
- script: 'hello'
condition: ${{ eq( parameters.createRelease, 'true') }}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.