¿Cómo configurar la ejecución de una tarea en GitLab al presionar un botón?
sobes.tech AI
Respuesta de la IA
Para configurar la ejecución manual de un trabajo en GitLab CI/CD, se utiliza la palabra clave when: manual en la descripción del trabajo en el archivo .gitlab-ci.yml.
Ejemplo:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Construyendo el proyecto..."
# Comandos de construcción
deploy_staging:
stage: deploy
script:
- echo "Desplegando en staging..."
# Comandos de despliegue
when: manual # Este trabajo debe iniciarse manualmente
allow_failure: false # Por defecto false, pero se especifica explícitamente para claridad
Explicación:
when: manual: Indica a GitLab que este trabajo no se ejecutará automáticamente al cambiar el código (commit) o según un horario. Esperará a que el usuario lo inicie manualmente a través de la interfaz de GitLab.allow_failure: false: Define si los trabajos siguientes (si los hay) deben ejecutarse si este trabajo manual termina en error. Si se establece enfalse(valor predeterminado), el pipeline se detendrá en caso de fallo de este trabajo. Si se establece entrue, el pipeline continuará incluso si falla.
Después de agregar y hacer commit de un archivo .gitlab-ci.yml con esta configuración, en la interfaz de pipelines de GitLab (CI/CD -> Pipelines) aparecerá un botón de inicio ("Run") o su estado será mostrado como "Manual" junto al trabajo deploy_staging. Al hacer clic en este botón, se inicia la ejecución del trabajo.
También se pueden incluir trabajos manuales en etapas que automáticamente inician otros trabajos. Por ejemplo:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Construyendo..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Probando..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Desplegando en producción..."
when: manual # Solo después de una prueba exitosa, y de forma manual
variables:
TARGET_ENVIRONMENT: "production" # Ejemplo: pasando variables a un trabajo manual
Aquí, el trabajo deploy_production solo estará disponible para su ejecución manual después de que test_job finalice con éxito.
Adicionalmente:
variables: Los trabajos manuales pueden usar variables definidas tanto en el archivo.gitlab-ci.ymlcomo en la configuración del proyecto/grupo.rules: Los escenarios de ejecución más complejos pueden usar la palabra claverulesjunto conwhen: manualpara definir condiciones bajo las cuales el trabajo manual estará disponible u obligatorio.- API: Los trabajos manuales también pueden iniciarse mediante la API de GitLab CI/CD.
En resumen, when: manual es el mecanismo principal para implementar la ejecución manual de trabajos en GitLab.