Como usar o bot do Lighthouse para definir um orçamento de performance

Você trabalhou muito para acelerar, agora mantenha a velocidade automatizando os testes de desempenho com o Lighthouse Bot.

O Lighthouse classifica seu app em cinco categorias, e uma delas é a performance. Embora você possa tentar se lembrar de Monitorar mudanças de desempenho com o DevTools ou a CLI do Lighthouse a cada depois de editar o código, não é necessário fazer isso. As ferramentas podem fazer o tedioso coisas para você. O Travis CI é um ótimo serviço que executa testes automaticamente no app na nuvem sempre que você envia um novo código.

O Lighthouse Bot se integra ao Travis CI, e o recurso de orçamento de performance garante que você não vai reduzir acidentalmente a performance sem perceber. É possível configurar seu repositório para que ele não permita mesclar solicitações de puxamento se as pontuações do Lighthouse ficarem abaixo do limite definido (por exemplo, < 96/100).

Falha nas verificações do Lighthouse Bot no GitHub
Verificações do Bot do Lighthouse no GitHub.

Embora seja possível testar o desempenho no localhost, o desempenho do site muitas vezes será diferente em servidores ativos. Para obter uma imagem mais realista, é melhor implantar seu site em um servidor temporário. É possível usar qualquer serviço de hospedagem. isso guia fará o curso Firebase Hosting para dar uma volta.

1. Configuração

Este app simples ajuda você a classificar três números.

Clone o exemplo do GitHub e adicione-o como um repositório à sua conta do GitHub.

2. Implantar no Firebase

Para começar, você precisa de uma conta do Firebase. Depois disso, crie um novo projeto no console do Firebase clicando em "Adicionar projeto":

Como implantar no Firebase

Você vai precisar da Firebase CLI para implantar o app. Mesmo que ela já esteja instalada, é recomendável atualizar a CLI com frequência para a versão mais recente com este comando:

npm install -g firebase-tools

Para autorizar a CLI do Firebase, execute:

firebase login

Agora inicialize o projeto:

firebase init

O console vai fazer uma série de perguntas durante a configuração:

  • Quando solicitado a selecionar recursos, escolha "Hospedar".
  • Para o projeto padrão do Firebase, selecione o projeto que você criou no console do Firebase.
  • Digite "public" como seu diretório público.
  • Digite "N" (não) para configurar como um app de página única.

Esse processo cria um arquivo de configuração firebase.json na raiz do do projeto.

Parabéns, você já pode implantar! Execute:

firebase deploy

Em um segundo, você terá um app ativo.

3. Configurar o Travis

Você precisa registrar uma conta no Travis e depois ativar a integração de aplicativos do GitHub na seção Configurações do seu perfil.

Integração de apps do GitHub no Travis CI

Depois de criar uma conta

Acesse "Configurações" no seu perfil, clique no botão "Sincronizar conta" e verifique se o repositório do projeto está listado no Travis.

Para iniciar a integração contínua, você precisa de duas coisas:

  1. Ter um arquivo .travis.yml no diretório raiz
  2. Para acionar um build fazendo um push do git

O repositório lighthouse-bot-starter já tem um arquivo YAML .travis.yml:

language: node_js
node_js:
  - "8.1.3"
install:
  - npm install
before_script:
  - npm install -g firebase-tools
script:
  - webpack

O arquivo YAML instrui o Travis a instalar todas as dependências e criar o app. Agora é sua vez de enviar o app de exemplo para seu próprio repositório do GitHub. Se ainda não tiver feito isso, execute o seguinte comando:

git push origin main

Clique no seu repositório em "Configurações" no Travis para ver o Travis do seu projeto mais avançado. Se tudo estiver certo, seu build mudará de amarelo para verde em alguns minutos. 🎉

4. Automatizar a implantação do Firebase com o Travis

Na etapa 2, você fez login na sua conta do Firebase e implantou o app pelo linha de comando com firebase deploy. Para que o Travis implante seu app em Firebase, você precisa autorizá-lo. Como fazer isso? Com um token do Firebase. 🗝️🔥

Autorizar o Firebase

Para gerar o token, execute este comando:

firebase login:ci

Uma nova guia será aberta em uma janela do navegador para que o Firebase possa fazer a verificação. Depois disso, volte ao console e você vai encontrar o token recém-criado. Copie e volte para o Travis.

No painel do Travis do seu projeto, acesse Mais opções > Configurações > Variáveis de ambiente.

Cole o token no campo de valor, nomeie a variável como FIREBASE_TOKEN e adicione.

Adicionar a implantação à configuração do Travis

As linhas abaixo são necessárias para instruir o Travis a implantar o app após cada build bem-sucedido. Adicione-as ao final do arquivo .travis.yml. 🔚

after_success:
  - firebase deploy --token $FIREBASE_TOKEN --non-interactive

Envie essa mudança para o GitHub e aguarde a primeira implantação automatizada. Seu registro do Travis vai aparecer com a mensagem ✔️ Deploy complete!

Agora, sempre que você fizer mudanças no app, elas serão implantadas automaticamente no Firebase.

5. Como configurar o Lighthouse Bot

O Friendly Lighthouse Bot informa as pontuações do Lighthouse do seu app. Ele só precisa de um convite para o repositório.

No GitHub, acesse as configurações do projeto e adicione "lighthousebot" como colaborador (Configurações > Colaboradores):

Status de colaborador do bot do Lighthouse

Aprovar essas solicitações é um processo manual, então elas não acontecem instantaneamente. Antes de começar a testar, verifique se o lighthousebot aprovou o status de colaborador. Enquanto isso, você também precisa adicionar outra chave à sua variáveis de ambiente do Travis. Deixe seu e-mail aqui, e você receberá uma chave do Lighthouse Bot na sua caixa de entrada. 📬

No Travis, adicione essa chave como uma variável de ambiente e nomeie-a como LIGHTHOUSE_API_KEY:

Adicionar o Lighthouse Bot ao seu projeto

Em seguida, adicione o Lighthouse Bot ao seu projeto executando o seguinte:

npm i --save-dev https://github.com/ebidel/lighthousebot

E adicione este bit ao package.json:

"scripts": {
  "lh": "lighthousebot"
}

Adicionar o bot do Lighthouse à configuração do Travis

Para o último truque, teste o desempenho do aplicativo após cada pull solicitação!

Em .travis.yml, adicione outra etapa em after_success:

after_success:
  - firebase deploy --token $FIREBASE_TOKEN --non-interactive
  - npm run lh -- https://staging.example.com

Ele vai executar uma auditoria do Lighthouse no URL fornecido. Portanto, substitua https://staging.example.com pelo URL do app. (seu-app-123.firebaseapp.com).

Defina padrões altos e ajuste a configuração para não aceitar nenhuma mudança no app que reduza a pontuação de desempenho abaixo de 95:

- npm run lh -- --perf=95 https://staging.example.com

Faça uma solicitação de envio para acionar o teste do Lighthouse Bot no Travis

O Lighthouse Bot só testa solicitações de envio. Portanto, se você enviar por push para a ramificação principal a mensagem "Este script só pode ser executado em solicitações de relações públicas do Travis" será exibida. na sua Registro do Travis.

Para acionar o teste do bot do Lighthouse:

  1. Fazer o checkout de uma nova ramificação
  2. Envie-o para o GitHub
  3. Fazer uma solicitação de envio

Aguarde na página de solicitação de pull e aguarde o Lighthouse Bot cantar! 🎤

Pontuações do Lighthouse para passar

Como passar nas verificações do GitHub

A pontuação de desempenho está ótima, o app está abaixo do orçamento e a verificação foi aprovada.

Mais opções do Lighthouse

Você se lembra de como o Lighthouse testa cinco categorias diferentes? É possível aplicar pontuações para qualquer uma delas com flags do Lighthouse Bot:

--perf  # performance
--pwa   # progressive web app score
--a11y  # accessibility score
--bp    # best practices score
--seo   # SEO score

Exemplo:

npm run lh -- --perf=93 --seo=100 https://staging.example.com

Isso vai falhar na PR se a pontuação de desempenho cair abaixo de 93 ou a pontuação de SEO cair abaixo de 100.

Você também tem a opção de não receber os comentários do Lighthouse Bot com --no-comment é a melhor opção.