仅当更改特定目录中的文件时,如何在新的PR上运行管道

时间:2020-10-15 05:42:07

标签: azure-devops azure-pipelines

我有一个包含2个目录的存储库,一个目录带有python代码,一个目录带有C代码。 我只想在python文件夹(hello_app)中的文件更改时在所有PR上运行一个管道。 我使用了以下yaml文件,但是当新PR包含hello_app目录之外的更改(仅)时,管道仍在运行:

trigger:
- none

pr:
  branches:
    include:
    - master
  paths:
    exclude:
    - '*'
    include:
    - hello_app/*

pool:
  vmImage: 'ubuntu-latest'
strategy:
  matrix:
    Python27:
      python.version: '2.7'
    Python36:
      python.version: '3.6'

steps:
- task: UsePythonVersion@0
  inputs:
    versionSpec: '$(python.version)'
  displayName: 'Use Python $(python.version)'

- script: |
    python -m pip install --upgrade pip
    pip install -r requirements.txt
  displayName: 'Install dependencies'

- script: |
    python -m pip install flake8
    flake8 .
  displayName: 'Run linter tests'

- script: |
    pip install pytest pytest-azurepipelines
    pytest
  displayName: 'pytest'

我尝试在线搜索,但似乎应该可以。我使用的Yaml出问题了吗?

1 个答案:

答案 0 :(得分:1)

请参阅此Doc

YAML PR触发器仅在GitHub和Bitbucket Cloud中受支持。如果 您使用Azure Repos Git,可以配置用于构建的分支策略 验证以触发您的构建管道进行验证。

如果您使用的是Azure存储库,则需要为构建验证配置分支策略,以触发构建管道进行验证。

您可以导航到branch policy -> build validation并设置路径过滤器(/hello_app/*)。

这是我的例子:

enter image description here

然后它可以按预期工作。