¿Cómo puedo excluir los cambios en el archivo yaml de canalización para activar una compilación en Azure DevOps?

4 minutos de lectura

avatar de usuario de sirpadk
sirpadk

Trabajando con Azure DevOps y archivos yaml de piplines. Hay un activador en la rama de desarrollo. Sin embargo, cuando estoy guardando cambios en el archivo yaml, se activa una nueva compilación.

Esto sucede porque el cambio en el archivo yaml es una nueva confirmación, capturada por el disparador.

Entonces, mi pregunta es, ¿cómo puedo excluir los cambios en el archivo yaml para que no activen una nueva compilación?

Avatar de usuario de Krzysztof Madej
Krzysztof Madej

Con cambios anunciados aquí Compatibilidad con comodines en filtros de ruta
ahora podemos usar comodines:

Se pueden usar comodines al especificar ramas de inclusión y exclusión para activadores de CI o PR en un archivo YAML de canalización. Sin embargo, no se pueden utilizar al especificar filtros de ruta. Por ejemplo, no puede incluir todas las rutas que coincidan con src/app/**/myapp*. Esto ha sido señalado como un inconveniente por varios clientes. Esta actualización llena este vacío. Ahora, puede usar caracteres comodín (**, * o ?) al especificar filtros de ruta.

Así que ahora puedes:

# specific path build
trigger:
  branches:
    include:
    - master
    - releases/*
  paths:
    include:
    - '*'
    exclude:
    - '**/*.yml'
    - '**/*.yaml'

  • Gracias, estaba buscando específicamente archivos YAML.

    – Varun Sharma

    11 ene a las 19:00

  • Advertencia justa: la ** la cadena de ruta tiene errores y solo coincide con directorios anidados. por ejemplo excluyendo **/*.md excluirá .md archivos en directorios anidados (p. ej. web/README.mdpero no es juego .md archivos en el directorio raíz (p. ej. README.md)

    – Jthorpe

    16 de marzo a las 18:53


avatar de usuario de rickvdbosch
rickvdbosch

Puede especificar rutas de archivo para incluir o excluir. Tenga en cuenta que la sintaxis de los comodines es diferente entre ramas/etiquetas y rutas de archivo.

# specific path build
trigger:
  branches:
    include:
    - master
    - releases/*
  paths:
    include:
    - docs/*
    exclude:
    - docs/README.md

Fuente: Cree repositorios Azure Repos Git o TFS Git – Desencadenadores de CI – Rutas

EDITAR abril de 2021:

Los comodines no son compatibles con los filtros de ruta.

Tomado de esa misma fuente ahora:

Puede especificar rutas de archivo para incluir o excluir.

# specific path build
trigger:
 branches:
   include:
   - master
   - releases/*
 paths:
   include:
   - docs
   exclude:
   - docs/README.md

Cuando especifica rutas, debe especificar explícitamente ramas para desencadenar. No puede desencadenar una canalización con solo un filtro de ruta; también debe tener un filtro de rama, y ​​los archivos modificados que coincidan con el filtro de ruta deben ser de una rama que coincida con el filtro de rama.

Puntas:

  • Los comodines no son compatibles con los filtros de ruta.
  • Las rutas siempre se especifican en relación con la raíz del repositorio.
  • Si no establece filtros de ruta, la carpeta raíz del repositorio se incluye implícitamente de forma predeterminada.
  • Si excluye una ruta, tampoco puede incluirla a menos que la califique para una carpeta más profunda. Por ejemplo, si excluye /herramientas, podría incluir /herramientas/trigger-runs-on-these
  • El orden de los filtros de ruta no importa.
  • Las rutas en Git distinguen entre mayúsculas y minúsculas. Asegúrese de usar el mismo caso que las carpetas reales.
  • No puede usar variables en rutas, ya que las variables se evalúan en tiempo de ejecución (después de que se haya disparado el disparador).

  • Los comodines no son compatibles con las rutas de activación, solo los nombres completos de archivos o directorios. Intenté usar * .json para desencadenar en una compilación Angular y simplemente se ignoró.

    – yzorg

    1 abr 2021 a las 18:40


  • ¿Funciona esto si también usas trigger: noneque se usa cuando desea que la canalización se ejecute en función de una verificación de política de relaciones públicas solo en ADO.

    – greg

    22 de diciembre de 2021 a las 5:42

  • @greg: para la solicitud de extracción, debe ir a las políticas de sucursal y configurar el filtro de ruta allí. Ver más información aquí – learn.microsoft.com/en-us/azure/devops/repos/git/…

    – Varun Sharma

    11 de enero a las 21:42

  • Los comodines para los filtros de ruta son compatibles desde el 8 de septiembre de 2021. Consulte las notas de la versión: learn.microsoft.com/en-us/azure/devops/release-notes/2021/…

    – corentinaltepe

    7 abr a las 9:18

¿Ha sido útil esta solución?