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.

Informar el estado de la pipeline de Tekton a GitLab sin importar si la pipeline falló o tuvo éxito (usando la Tarea gitlab-set-status).

Ya estamos utilizando la tarea gitlab-set-status de Tekton Hub para informar el estado de nuestro Pipeline de Tekton de vuelta a nuestra instancia de GitLab (aquí está nuestra instalación de EKS y Tekton y un proyecto de ejemplo en gitlab.com). Nuestro archivo pipeline.yml se ve así y actualmente informa el estado SUCCESS cada vez que se ejecuta el Pipeline de Tekton:

¿Cómo podemos mejorar nuestro Pipeline de Tekton para informar correctamente el estado a GitLab independientemente de cualquier falla o éxito?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para mejorar el Tekton Pipeline y reportar el estado correctamente, independientemente de si hay éxito o fallo hacia GitLab, necesitamos modificar la tarea report-pipeline-end-to-gitlab en el archivo pipeline.yml. En lugar de establecer el parámetro STATE a success cada vez que se ejecuta el pipeline, podemos utilizar la función outputs en Tekton para capturar el estado real de la carrera del pipeline y luego usarlo para establecer el estado en GitLab.

    Aquí está la tarea modificada report-pipeline-end-to-gitlab:

    - name: report-pipeline-end-to-gitlab
      taskRef:
        name: "gitlab-set-status"
      runAfter:
        - buildpacks
      inputs:
        params:
          STATE_FROM: "$(task.results.buildpacks.status)"
      params:
        - name: "STATE"
          value: "$(params.STATE_FROM)"
        - name: "GITLAB_HOST_URL"
          value: "$(params.GITLAB_HOST)"
        - name: "REPO_FULL_NAME"
          value: "$(params.REPO_PATH_ONLY)"
        - name: "GITLAB_TOKEN_SECRET_NAME"
          value: "gitlab-api-secret"
        - name: "GITLAB_TOKEN_SECRET_KEY"
          value: "token"
        - name: "SHA"
          value: "$(params.SOURCE_REVISION)"
        - name: "TARGET_URL"
          value: "$(params.TEKTON_DASHBOARD_HOST)/#/namespaces/default/pipelineruns/$(context.pipelineRun.name)?tab=logs"
        - name: "CONTEXT"
          value: "tekton-pipeline"
        - name: "DESCRIPTION"
          value: "Tekton Pipeline $(context.pipelineRun.name) is $(params.STATE_FROM)"
    

    Aquí, hemos agregado una sección inputs para capturar el estado de la tarea buildpacks utilizando la sección result. Luego hemos utilizado ese estado para establecer el valor del parámetro STATE_FROM.

    También hemos actualizado el parámetro STATE para tomar el valor de STATE_FROM, estableciendo así el estado en GitLab basado en el estado real de la carrera del pipeline, independientemente de si fue exitoso o no.

    Además, hemos modificado el parámetro TARGET_URL para incluir la pestaña logs, proporcionando al usuario información más detallada sobre la carrera del pipeline.

    En general, estos cambios mejoran el pipeline y proporcionan un estado más preciso y representativo a GitLab.

Comments are closed.