Configurar reglas para Puertas de calidad

Este producto no es compatible con el sitio Datadog seleccionado. ().

Información general

Para utilizar Datadog Quality Gates, puedes definir una o varias reglas en la página Quality Gate Rules e integrarlas en tu CI pipeline con el comandodatadog-ci gate evaluate.

Página Quality Gates en Datadog

Quality Gates garantiza que sólo se despliegue el código que cumpla tus normas de calidad, automatizando tus procesos de control de calidad y mejorando la fiabilidad del software.

Crear una regla

Para crear una regla de Quality Gates en Datadog:

  1. Ve a Software Delivery > Quality Gates > Quality Gate Rules (Entrega de software > Quality Gates > Reglas de Quality Gate) y haz clic en + New Rule (+ Nueva regla).

  2. Selecciona un tipo de regla: Test, Static Analysis, o Software Composition Analysis.

  3. Establece el ámbito de la regla, que define cuándo debe evaluarse la regla, seleccionando Always evaluate o Select when to evaluate. Puedes añadir ramas o repositorios para incluirlos o excluirlos del ámbito de la regla, o añadir un ámbito personalizado.

    Añadir un ámbito personalizado a un ámbito de regla en Quality Gates

    Puedes crear una regla que se evalúe sólo en repositorios y ramas específicos. Para personalizar el alcance de la regla, haz clic en Select when to evaluate y especifica la rama o el repositorio que debe incluirse o excluirse.

    Para añadir un ámbito personalizado (como el nombre de un equipo), haz clic en + Add Filter (+ Añadir filtro) y selecciona Custom scope (Ámbito personalizado). Introduce un nombre de etiqueta sin espacios (como documentation o team-documentation) y haz clic en Add Custom Scope (Añadir ámbito personalizado). Introduce los valores que deben incluirse o excluirse.

    Al añadir un ámbito personalizado a una regla, los ámbitos personalizados deben pasarse al comando datadog-ci gate evaluate utilizando la opción --scope. Para obtener más información, consulta Comprender los ámbitos de las reglas.

  4. Define las condiciones de la regla. La condición de la regla establece en qué escenario falla la regla, fallando el pipeline relacionado (si la regla es de bloqueo). Puedes seleccionar una de las condiciones de regla existentes para el tipo de regla que hayas seleccionado. Si el ámbito de la regla se establece en always evaluate, la regla se evalúa en todos los repositorios y ramas.

    El siguiente ejemplo muestra cómo crear una regla de Static Analysis que falla cuando una o más violaciones de calidad del código de Static Analysis con estado error están contenidas dentro de un repositorio.

    Selecciona Static Analysis para el tipo de regla y haz clic en Always evaluate para el ámbito de la regla.

    Una regla de Static Analysis que falla cuando cualquier violación de la calidad del código con un estado de error está contenida en cualquier servicio

    En la sección Define rule conditions (Definir condiciones de regla), selecciona code quality violations en el menú desplegable. A continuación, selecciona el tipo de estado error, selecciona above or equal to, e introduce el valor de 1.

  5. Especifica un nombre de regla que describa la regla que estás creando.

  6. Selecciona si la regla debe bloquear el pipeline cuando falla. Las reglas que no son de bloqueo son útiles cuando se despliega una nueva regla y se desea verificar su comportamiento antes de hacerla de bloqueo.

  7. Integra la regla de Quality Gate en tu configuración de compilación incluyendo el comandodatadog-ci gate evaluate.

  8. Habilita una comprobación de estado de GitHub para tu regla de Quality Gate estableciendo los permisos adecuados (como Checks: Write) en tus aplicaciones de GitHub. Para establecer esta comprobación como bloqueo en tus solicitudes pull, debes hacer clic en la casilla Required (Obligatorio) de la configuración de Protected Branches de tu aplicación de GitHub.

  9. Haz clic en Create Rule (Crear regla).

Integrar Quality Gates en tu pipeline de CI/CD

Invoca la evaluación de Quality Gates llamando al comando datadog-ci gate evaluate. Quality Gates requiere datadog-ci versión 2.27.0 o posterior.

Para que el comando funcione correctamente, asegúrate de que los eventos (tests, análisis estático y violaciones de análisis de composición de software) se envían a Datadog antes de que se ejecute el comando datadog-ci gate evaluate. De lo contrario, las reglas pueden mostrar un comportamiento incorrecto debido a la ausencia de estos eventos.

Este comando:

  1. Recupera todas las reglas que tienen contextos de reglas y contextos personalizados que coinciden con el contexto del pipeline actual (el repositorio, la rama o los contextos personalizados pasados ​​en el comando).
  2. Evalúa todas las reglas coincidentes.
  3. Falla si fallan una o más reglas de bloqueo, lo que bloquea el pipeline.
Variables de entornoDescripción
DD_API_KEYSeñala tu clave de API de Datadog.
DD_APP_KEYSeñala tu clave de aplicación de Datadog. La clave de aplicación debe tener el permiso Quality Gates Evaluations habilitado.
DD_SITE(Opcional) Señala tu sitio de Datadog específico (el valor predeterminado es ). Nota: DATADOG_SITE no es compatible.

Por ejemplo:

DD_SITE= DD_API_KEY=API_KEY DD_APP_KEY=APP_KEY datadog-ci gate evaluate

Configura el comportamiento del comando datadog-ci gate evaluate con las siguientes marcas:

--fail-on-empty
El comando falla si no se encuentran reglas coincidentes en función del contexto del pipeline actual. De manera predeterminada, el comando se ejecuta correctamente.
--fail-if-unavailable
El comando falla si una o más reglas no se pueden evaluar debido a un problema interno. De manera predeterminada, el comando se ejecuta correctamente.
--timeout
El comando detiene su ejecución después del tiempo de espera especificado en segundos. El tiempo de espera predeterminado es de 10 minutos. Por lo general, el comando se completa en unos minutos, pero podría tardar más.
--no-wait
Omite el tiempo predeterminado que el comando espera para que los eventos (por ejemplo, tests, infracciones de análisis estático) lleguen a Datadog. El tiempo de espera predeterminado garantiza que los eventos se puedan consultar en Datadog antes de que se ejecuten las reglas, lo que evita evaluaciones incorrectas. Si, en tu pipeline, el trabajo que contiene el comando datadog-ci gate evaluate se llama varios minutos después de que se envían los eventos relacionados a Datadog, puedes optar por omitir este tiempo de espera al establecer la marca --no-wait. Sin embargo, si se usa incorrectamente, esta marca puede generar evaluaciones de reglas inexactas.

Añade contextos personalizados al comando con la opción --contexto una o más veces:

datadog-ci gate evaluate --scope team:backend --scope team:frontend

Consulta los logs de comandos para ver el estado general de la evaluación de la puerta y la información sobre las reglas que se evaluaron.

Logs de datadog-ci gate evaluate

Habilitar la creación de checks en GitHub

Puedes crear de manera automática un check de GitHub para cada regla evaluada. El check contiene información adicional sobre la evaluación de la regla, como el motivo de la falla y los eventos coincidentes en Datadog. Cuando esta función se encuentra habilitada, los resultados de la evaluación aparecen directamente en GitHub.

Para habilitar los checks de GitHub:

  1. Dirígete al cuadro de integración de GitHub. Si no tienes configurada esta integración o no tienes una aplicación de GitHub en la integración, sigue la documentación de la integración de GitHub para configurar una.
  2. Otorga acceso de Checks: Write a la aplicación de GitHub.

Una vez que se otorgue el permiso, podrás ver los checks en GitHub.

Nota: Volver a ejecutar un check no vuelve a ejecutar la regla de Puertas de calidad correspondiente.

Gestionar reglas

Puedes editar y eliminar reglas de puertas de calidad al colocar el ratón sobre una regla en la página de Reglas de Puertas de calidad.

Edita, clona o elimina una regla de puertas de calidad

De manera alternativa, haz clic en una regla de la lista y haz clic en los iconos para editar, clonar o eliminar.

Permisos

Sólo los usuarios con el permiso quality_gate_rules_write pueden crear y editar reglas de Puertas de calidad. Los usuarios con el permiso quality_gate_rules_read pueden ver las reglas de Puertas de calidad.

Para obtener más información, consulta la documentación de permisos RBAC.

Referencias adicionales

Más enlaces, artículos y documentación útiles: