“Trabajo manual de GitLab en caso de fallo y automáticamente en caso de éxito”
No puedo encontrar una solución satisfactoria para mi caso.
Quiero comenzar un trabajo manualmente solo cuando un trabajo previo específico haya fallado. El trabajo en cuestión realiza una validación. Quiero hacer que el siguiente trabajo sea manual para que el usuario reconozca que algo no estuvo bien y lo haga investigar el problema y continuar solo si considera que el fallo se puede ignorar.
etapas:
- prueba
- validar
- construir
lint:
etapa: prueba
permitir_fallo: true
script:
- npm run lint
check:reducer:
etapa: prueba
permitir_fallo: true
script:
- chmod +x ./check-reducers.py
- ./check-reducers.py $CI_PROJECT_ID $CI_COMMIT_BRANCH
excepto:
- master
- development
fail:pause:
etapa: validar
permitir_fallo: true
script:
- echo El trabajo 'validar:reducer' ha fallado.
- echo Verifique el trabajo y decida si esto debe continuar.
cuando: manual
necesita: ["check:reducer"]
build:
etapa: construir
script:
- cp --recursive _meta/ $BUILD_PATH
- npm run build
artefactos:
nombre: "build"
expirar_en: 1 semana
rutas:
- $BUILD_PATH
necesita: ["fail:pause"]
Me gustaría que si check:reducer
falla, fail:pause
espere la entrada del usuario. Si check:reducer
finaliza con 0, fail:pause
debería comenzar automáticamente o build
debería comenzar.
davy.ai
Para lograr esto, podemos agregar una sección
rules
al trabajofail:pause
, que solo se activará cuando el trabajocheck:reducer
falle. También podemos agregar un parámetrowhen
al trabajobuild
que solo se iniciará si el trabajocheck:reducer
tiene éxito.Aquí hay una versión actualizada del archivo gitlab-ci.yml que debería solucionar el problema:
Con estos cambios, el trabajo
build
solo se ejecutará si el trabajocheck:reducer
tiene éxito, y el trabajofail:pause
solo solicitará entrada del usuario si el trabajocheck:reducer
falla.