【发布时间】:2021-09-10 05:03:20
【问题描述】:
我正在创建一个使用 2 个存储库的管道。在Build_Dev 阶段,我只想在来自回购Test 的情况下运行它。但是,每次管道运行时,总是会跳过Build_Dev 阶段(尽管提交来自Test repo)。下面是yaml。我在Build_Dev 阶段中的condition 做错了什么? Info 阶段将$(Build.Repository.Name) 识别为Test(这是正确的)。
resources:
repositories:
- repository: PipelineRepo
type: git
name: 'Test/pipeline-config'
- repository: App
type: git
name: 'Test/Test'
trigger:
- Dev
- Test*
stages:
- stage: Info
displayName: Info
jobs:
- job: 'Info'
displayName: 'Print Info: Repo: $(Build.Repository.Name) / Branch: $(Build.SourceBranch)'
pool:
vmImage: 'ubuntu-20.04'
steps:
- script: 'echo "Repo: $(Build.Repository.Name) / Branch: $(Build.SourceBranch)"'
displayName: 'Write build info'
- stage: 'Build_Dev'
dependsOn: Info
displayName: 'Build the web application in Dev'
condition: eq(variables['Build.Repository.Name'], 'Test')
jobs:
- job: 'Build'
displayName: 'Build job'
pool:
vmImage: 'ubuntu-20.04'
variables:
dotnetSdkVersion: '5.x'
steps:
- checkout: App
- task: UseDotNet@2
displayName: 'Use .NET SDK $(dotnetSdkVersion)'
inputs:
version: '$(dotnetSdkVersion)'
- script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber), repo: $(Build.Repository.Name), branch: $(Build.SourceBranch)"'
displayName: 'Write build info'
- task: DotNetCoreCLI@2
displayName: 'Restore project dependencies'
inputs:
command: 'restore'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: 'Build the project - Dev'
inputs:
command: 'build'
arguments: '--no-restore'
projects: '**/*.csproj'
- task: DotNetCoreCLI@2
displayName: 'Publish the project - Dev'
inputs:
command: 'publish'
projects: '**/*.csproj'
publishWebProjects: false
arguments: '--no-build --output $(Build.ArtifactStagingDirectory)/Dev'
zipAfterPublish: true
- publish: '$(Build.ArtifactStagingDirectory)'
artifact: drop
【问题讨论】:
标签: azure-devops azure-pipelines azure-pipelines-yaml