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?
davy.ai
Para omitir un trabajo de GitLab CI en la pipeline si los cambios están relacionados con archivos
*.md
,eslintrc.json
ojsconfig.json
, puedes usar la palabra claveonly: changes
junto con una expresión regular para coincidir con los nombres de archivo. Aquí tienes un ejemplo de cómo lograr esto: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
ojsconfig.json
), mientras que la palabra claveexcept: 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 claveexcepto
para asegurarte de que el trabajo no se ejecute si hay cambios en otros archivos.