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.

Ejecutar bloque de script por disparador y rama especificada.

Tengo 2 ramas en mi proyecto:

  1. DEV
  2. STAGE

Código fuente en la rama STAGE, construido por un pipeline al confirmar en la rama STAGE:

YAML
deploy-stage:
only:
- STAGE
before_script:
- algunos scripts para la construcción...
script:
- algunos scripts para la construcción...

Ahora quiero ejecutar el bloque de script solo para la rama DEV y solo mediante una llamada de disparador con curl Como esto

¿Cómo puedo hacer esto correctamente?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para ejecutar el bloque de script solo para la rama DEV y solo mediante la llamada de activación con curl, puede modificar el archivo de configuración del pipeline .gitlab-ci.yml de la siguiente manera:

    deploy-stage:
      only:
        - STAGE
      before_script:
        - algunos scripts para compilar...
      script:
        - algunos scripts para compilar...
    
    deploy-dev:
      only:
        - triggers
      except:
        - STAGE
      before_script:
        - algunos scripts para compilar...
      script:
        - algunos scripts para compilar...
    

    Aquí, hemos agregado un nuevo trabajo deploy-dev al archivo .gitlab-ci.yml. Hemos especificado que solo debe ser activado por un activador usando only: triggers. También hemos usado except: STAGE para especificar que el trabajo deploy-dev no debe ejecutarse cuando se actualice la rama STAGE. Esto significa que el trabajo deploy-dev se ejecutará solo cuando se llame a la URL de activación y se ejecutará solo para la rama DEV.

    Para activar el trabajo deploy-dev, puede usar el comando curl de la siguiente manera:

    curl -X POST \
         -F token=TOKEN \
         -F ref=DEV \
         https://gitlab.example.com/api/v4/projects/PROJECT_ID/trigger/pipeline
    

    Reemplace TOKEN con el token de activación para el proyecto, DEV con el nombre de la rama para la cual desea activar el trabajo, https://gitlab.example.com` con su URL de GitLab yPROJECT_ID` con el ID del proyecto.

    Esto activará el trabajo deploy-dev para la rama especificada.

Comments are closed.