es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

GitLab CI: omitir tarea si solo ciertos archivos han cambiado

Necesito omitir un trabajo de GitLab CI en mi pipeline si los únicos cambios de mi commit/solicitud de fusión están relacionados con los archivos *.md, eslintrc.json o jsconfig.json.

Ejemplos:

  • Si estos archivos han cambiado, pero también han cambiado otros como *.js: el trabajo debería ejecutarse.
  • Si estos archivos no han cambiado en absoluto, pero otros archivos *.js sí han cambiado: el trabajo debería ejecutarse.
  • Si README.md y eslintrc.json han cambiado y nada más ha cambiado: el trabajo no debería ejecutarse.

He intentado lograr esto, pero hasta ahora no he encontrado útiles las etiquetas except:changes ni rules:when:never. ¿Cómo puedo hacerlo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para omitir un trabajo de GitLab CI en la pipeline si los cambios están relacionados con archivos *.md, eslintrc.json o jsconfig.json, puedes usar la palabra clave only: changes junto con una expresión regular para coincidir con los nombres de archivo. Aquí tienes un ejemplo de cómo lograr esto:

    etapas:
      - construir
      - probar
      - desplegar
    
    mi_trabajo:
      etapa: construir
      script:
        - ... # comandos para ejecutar el trabajo
      only:
        cambios:
          - /*.md
          - eslintrc.json
          - jsconfig.json
      excepto:
        cambios:
          - /*.js
    

    La palabra clave only: changes especifica que el trabajo solo se debe ejecutar si hay cambios en los archivos mencionados (en este caso *.md, eslintrc.json o jsconfig.json), mientras que la palabra clave except: changes especifica que el trabajo no se debe ejecutar si hay cambios en cualquier otro archivo (en este caso *.js).

    Toma en cuenta que debes usar una expresión regular (/*) antes del patrón del nombre de archivo para coincidir con los archivos en cualquier nivel de directorio. Además, asegúrate de especificar la palabra clave excepto para asegurarte de que el trabajo no se ejecute si hay cambios en otros archivos.

Comments are closed.