O validador de estilo de integração contínua (IC) identifica o LookML que não corresponde às preferências de estilo da sua equipa, como dimensões com descrições em falta ou nomes de vistas que não estão em formato snake_case.
Crie um ficheiro de configuração
Em seguida, para criar um ficheiro de configuração no seu projeto do Looker que escolha uma das nossas regras de estilo predefinidas para testar.
Num novo ramo do Git denominado lkmlstyle, crie um novo ficheiro denominado lkmlstyle.yaml na raiz do repositório do seu projeto do Looker.
:::caution Não pode fazê-lo no IDE do Looker. Tem de a) clonar o repositório para o seu computador local, criar um novo ramo e, em seguida, adicionar e confirmar o ficheiro; ou b) criar o ficheiro através do editor Web do seu sistema de controlo de versões (como github.dev).
Se tentar adicionar este ficheiro na IU Web do Looker, o Looker anexa um .lkml à extensão do ficheiro, e este não é reconhecido pelos Spectacles.
:::
Adicione a seguinte linha ao novo ficheiro lkmlstyle.yaml:
select: [V100]
Esta ação seleciona uma única regra, V100, ignorando todas as outras. A V100 verifica se todos os nomes de visualização estão em formato snake case (por exemplo, fct_orders e não fctOrders, FctOrders ou FCTORDERS).
Começamos com uma única regra ao nível da visualização para não sobrecarregar com erros no início, mas pode adicionar mais regras à medida que avança, adicionando os respetivos códigos à lista select no ficheiro de configuração.
Pode ver uma tabela de todas as regras de estilo possíveis.
Confirme o ficheiro e certifique-se de que é enviado para o ramo lkmlstyle. Agora, se iniciar uma execução manual no Spectacles nesta ramificação, vai usar a configuração conforme definida no seu ficheiro.
Para tal, navegue até à página Suites, encontre ou crie uma Suite com o validador de estilos ativado e clique em Criar execução. Selecione o modo de desenvolvimento para testar uma ramificação de desenvolvimento ou testar a produção diretamente.
Personalize as regras predefinidas
Também pode personalizar qualquer regra através do ficheiro de configuração.
Vamos modificar a regra D100, que verifica as dimensões do tipo yesno que não começam por "is" ou "has", para que permita dimensões que comecem por "was".
Primeiro, precisa da definição YAML da regra, que pode encontrar no repositório público spectacles-ci/style-validator-rules.
Crie uma nova chave no seu ficheiro YAML denominada custom_rules e copie a definição YAML para a regra D100 nessa secção, da seguinte forma:
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 regra é um PatternMatchRule, que usa regex para verificar partes definidas do projeto LookML. Adicione D100 à lista de regras a verificar e modifique a definição da regra para permitir "was".
Vamos alterar a regex de regex: ^(?:is|has)_ para regex: ^(?:is|has|was)_ e atualizar o título para corresponder. Aqui está a definição final da regra:
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
Da próxima vez que executar o validador de estilos, os Spectacles vão usar a sua definição de regra personalizada para D100 em vez da predefinição.
Se quiser saber mais sobre as regras de estilo personalizadas, pode ler sobre elas detalhadamente na nossa página de referência.
Validação incremental
No modo incremental, o validador de estilos ignora todos os erros de conteúdo que já estejam presentes na produção. Isto é útil se quiser ver apenas os erros de conteúdo introduzidos pelas alterações da ramificação.
Pode ativar a validação incremental para o validador de estilos ativando a caixa de verificação Apenas erros incrementais na secção Validador de estilos quando cria ou edita um conjunto de integração contínua.
Valide o estilo de forma incremental
A execução do validador de estilos de forma incremental é especialmente útil porque, muitas vezes, gera um número excessivo de erros quando é ativado pela primeira vez num projeto.
Por exemplo, pode ativar o modo incremental para o conjunto acionado por pedidos de envio para testar apenas o LookML recebido quanto a violações de estilo, em vez de ter de limpar todo o projeto para obter uma execução bem-sucedida.
No modo incremental, o validador de estilo é executado duas vezes: uma vez num ramo ou commit e outra vez numa referência de destino (por exemplo, produção do Looker ou outro ramo). O validador só devolve erros exclusivos do seu ramo ou consolidação.
Primeiro, vamos apresentar algumas violações de estilo. Na ramificação spectacles-tutorial, crie uma nova dimensão sem uma descrição.
Se existir um ficheiro lkmlstyle.yml no repositório do seu projeto do Looker, certifique-se de que vai testar a regra D301 (Descrição da dimensão visível em falta). Consulte a secção do validador de estilos do tutorial de validadores se não tiver a certeza de como este ficheiro funciona.
De seguida, vamos editar o nosso conjunto de testes para realizar a validação SQL incremental, além da validação de conteúdo.
- No menu superior, clique em Suites
- Clique no conjunto denominado Validação incremental
Ative o validador de estilos (pode ter de definir uma chave de implementação no seu repositório para ativar este validador)
Configure a secção Style Validator com as seguintes opções:
- Apenas erros incrementais: selecione a caixa
Clique em Atualizar conjunto
Na página Suites, junto à Incremental Validation Suite, clique em Criar execução
- Em Espaço de trabalho, escolha Modo de programador
- Em Filial, escolha
spectacles-tutorial - Clique em Iniciar
:::info Como é que os Spectacles decidem se uma violação de estilo é nova?
O Spectacles analisa cada violação na sua ramificação ou commit e cada violação na referência de destino (por exemplo, produção do Looker, outra ramificação, etc.).
O Spectacles devolve uma violação encontrada na sua ramificação de confirmação se não conseguir encontrar uma violação na referência de destino correspondente:
- Código da regra
- Caminho do ficheiro
- Linha de descendência (por exemplo,
orders_view.order_id_dimension) - Linha marcada do LookML
Se modificar o LookML existente com violações na sua referência de destino de uma forma que altere qualquer uma das caraterísticas acima, o Spectacles devolve uma violação, mesmo no modo incremental.
Por exemplo, as seguintes modificações fazem com que seja apresentada uma violação existente:
- Mudar o nome de um ficheiro
- Mudar o nome de uma dimensão, uma medida, uma vista, etc.
- Alterar o conteúdo da linha de LookML com uma violação
:::