El validador de estilo de integración continua (CI) identifica el LookML que no coincide con las preferencias de estilo de tu equipo, como las dimensiones a las que les faltan descripciones o los nombres de vistas que no están en formato snake_case.
Crear un archivo de configuración
A continuación, crea un archivo de configuración en tu proyecto de Looker que elija una de nuestras reglas de estilo predefinidas para hacer pruebas.
En una nueva rama de Git llamada lkmlstyle, crea un archivo llamado lkmlstyle.yaml en la raíz del repositorio de tu proyecto de Looker.
:::caution No podrás hacerlo en el IDE de Looker. Tendrás que clonar el repositorio en tu máquina local, crear una rama nueva y, a continuación, añadir y confirmar el archivo. También puedes crear el archivo a través del editor web de tu sistema de control de versiones (como github.dev).
Si intentas añadir este archivo en la interfaz web de Looker, Looker añadirá un .lkml a la extensión del archivo y Spectacles no lo reconocerá.
:::
Añade la siguiente línea al archivo lkmlstyle.yaml que has creado:
select: [V100]
Se seleccionará una sola regla, V100, y se ignorarán las demás. V100 comprueba que todos los nombres de las vistas estén en formato snake_case (por ejemplo, fct_orders, no fctOrders, FctOrders ni FCTORDERS).
Empezaremos con una sola regla a nivel de vista para no abrumarte con errores al principio, pero puedes añadir más reglas a medida que avances añadiendo sus códigos a la lista select de tu archivo de configuración.
Puedes consultar una tabla con todas las reglas de estilo posibles.
Confirma el archivo y asegúrate de que se haya enviado a tu rama lkmlstyle. Ahora, si inicias una ejecución manual en Spectacles en esta rama, se usará la configuración definida en tu archivo.
Para ello, ve a la página Suites, busca o crea una suite con Style Validator habilitado y haz clic en Create Run. Selecciona el modo Desarrollo para probar una rama de desarrollo o prueba la producción directamente.
Personalizar las reglas predeterminadas
También puedes personalizar cualquier regla con tu archivo de configuración.
Vamos a modificar la regla D100, que comprueba si las dimensiones de tipo yesno no empiezan por "is" o "has", para que permita las dimensiones que empiezan por "was".
Primero, necesitarás la definición YAML de la regla, que puedes encontrar en el repositorio público spectacles-ci/style-validator-rules.
Crea una clave nueva en el archivo YAML llamada custom_rules y copia la definición YAML de la regla D100 en esa sección, como se indica a continuación:
select: [V100]
custom_rules:
- title: Yesno dimension doesn't start with 'is_' or 'has_'
code: D100
rationale:
Wording the name of a **yesno** dimension as a question makes it clear
to the user what a yes or no value represents.
select:
- dimension
filter:
- type: ParameterFilter
parameter_name: type
value: yesno
regex: ^(?:is|has)_
negative: false
type: PatternMatchRule
Esta regla es un PatternMatchRule, que usa expresiones regulares para comprobar las partes definidas del proyecto de LookML. Añade D100 a la lista de reglas que se deben comprobar y modifica la definición de la regla para permitir "was".
Cambiaremos la expresión regular de regex: ^(?:is|has)_ a regex: ^(?:is|has|was)_ y actualizaremos el título para que coincida. Esta es la definición final de la regla:
select: [V100, D100]
custom_rules:
- title: Yesno dimension doesn't start with 'is_, has_', or 'was_'
code: D100
rationale:
Wording the name of a **yesno** dimension as a question makes it clear
to the user what a yes or no value represents.
select:
- dimension
filter:
- type: ParameterFilter
parameter_name: type
value: yesno
regex: ^(?:is|has|was)_
negative: false
type: PatternMatchRule
La próxima vez que ejecutes Style Validator, Spectacles usará tu definición de regla personalizada para D100 en lugar de la predeterminada.
Si quieres obtener más información sobre las reglas de estilo personalizadas, puedes consultar nuestra página de referencia.
Validación incremental
En el modo incremental, el validador de estilos ignorará los errores de contenido que ya estén presentes en producción. Esto resulta útil si solo quieres ver los errores de contenido introducidos por los cambios de tu rama.
Para habilitar la validación incremental en el validador de estilos, marque la casilla Solo errores incrementales en la sección Validador de estilos al crear o editar un conjunto de pruebas de integración continua.
Validar el estilo de forma incremental
Ejecutar Style Validator de forma incremental es especialmente útil porque a menudo genera un número abrumador de errores cuando se habilita por primera vez en un proyecto.
Por ejemplo, puedes activar el modo incremental en tu paquete activado por solicitudes de extracción para probar solo el LookML entrante en busca de infracciones de estilo, en lugar de tener que limpiar todo el proyecto para que se ejecute correctamente.
En el modo incremental, el validador de estilo se ejecutará dos veces: una en una rama o confirmación y otra en una referencia de destino (por ejemplo, la producción de Looker u otra rama). El validador solo devolverá los errores que sean únicos en tu rama o confirmación.
Primero, vamos a introducir algunas infracciones de estilo. En la rama spectacles-tutorial, crea una dimensión sin descripción.
Si hay un archivo lkmlstyle.yml en el repositorio de tu proyecto de Looker, asegúrate de que compruebe la regla D301 (Falta la descripción de la dimensión visible). Si no sabes cómo funciona este archivo, consulta la sección del validador de estilos del tutorial sobre validadores.
A continuación, vamos a editar nuestro conjunto de pruebas para realizar una validación incremental de SQL además de la validación de contenido.
- En el menú superior, haz clic en Suites.
- Haz clic en el conjunto de pruebas llamado Validación incremental.
Habilita Style Validator (puede que tengas que configurar una clave de implementación en tu repositorio para habilitar este validador).
Configura la sección Validador de estilo con las siguientes opciones:
- Solo errores incrementales: marca la casilla.
Haz clic en Actualizar paquete.
En la página Suites, junto a Incremental Validation Suite, haz clic en Create Run (Crear ejecución).
- En Espacio de trabajo, elige Modo Desarrollo.
- En Rama, elige
spectacles-tutorial. - Haz clic en Empezar.
:::info ¿Cómo decide Spectacles si una infracción de estilo es nueva?
Spectacles analiza cada infracción de tu rama o confirmación y cada infracción de la referencia de destino (por ejemplo, la producción de Looker, otra rama, etc.).
Spectacles devolverá una infracción encontrada en tu rama de confirmación si no encuentra ninguna infracción en la referencia de destino que coincida:
- Código de regla
- Ruta de archivo
- Lineage (por ejemplo,
orders_view.order_id_dimension) - Línea marcada de LookML
Si modificas el LookML con infracciones en tu ref objetivo de forma que se altere alguna de las características anteriores, Spectacles devolverá una infracción, incluso en el modo incremental.
Por ejemplo, si se realizan las siguientes modificaciones, se producirá una infracción:
- Cambiar el nombre de un archivo
- Cambiar el nombre de una dimensión, una medida, una vista, etc.
- Cambiar el contenido de la línea de LookML con una infracción
:::