Configurar reglas para Puertas de calidad
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
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
.
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:
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).
Selecciona un tipo de regla: Test
, Static Analysis
, o Software Composition Analysis
.
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.
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.
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.
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
.
Especifica un nombre de regla que describa la regla que estás creando.
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.
Integra la regla de Quality Gate en tu configuración de compilación incluyendo el comandodatadog-ci gate evaluate
.
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.
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:
- 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).
- Evalúa todas las reglas coincidentes.
- Falla si fallan una o más reglas de bloqueo, lo que bloquea el pipeline.
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.
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:
- 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.
- 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.
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: