Visão Geral
Para construir uma extensão robusta para o Discourse, pode ser prudente incluir Integração Contínua (CI) no seu plugin ou componente de tema. Isso ajudará a detectar erros precocemente e diminuir as chances de bugs no seu código.
Configurar um fluxo de trabalho de :abbr title=“Continuous Integration”>CI usando GitHub Actions para automatizar compilações e testes é uma abordagem que a equipe do Discourse usa em todos os nossos componentes, e recomendamos que você faça o mesmo.
Configurando
Para adicionar fluxos de trabalho automatizados para o GitHub Actions detectar, você precisa criar uma pasta .github/workflows no diretório raiz do seu repositório.
Dentro da pasta workflows, você pode definir um conjunto de automações que o GitHub Actions precisará executar. Por exemplo, estes podem ser arquivos .yml para linting e testes.
Criamos fluxos de trabalho de modelo tanto para plugins quanto para componentes de tema que você pode utilizar. Eles se conectam às nossas definições de ‘fluxo de trabalho reutilizável’ aqui.
No repositório esqueleto do modelo, no GitHub, você pode clicar no botão :kbd:Use this template para criar um repositório de plugin/componente de tema baseado no modelo.
Alternativamente, se você já tem um projeto ao qual deseja adicionar os fluxos de trabalho, simplesmente copie o fluxo de trabalho relevante para a pasta .github/workflows/ do seu repositório:
Plugins: discourse-plugin.yml
Temas e Componentes de Tema: discourse-theme.yml
Esses modelos estão fixados em uma versão principal específica dos nossos fluxos de trabalho reutilizáveis. Pequenas melhorias que fizermos nos fluxos de trabalho terão efeito automático no seu tema/plugin. Para alterações que quebram a compatibilidade (por exemplo, introduzir um novo linter), aumentaremos a versão principal dos fluxos de trabalho reutilizáveis, e você precisará atualizar seu fluxo de trabalho para apontar para a nova versão.
Pronto! Você está configurado! Simplesmente, crie um commit ou um :abbr title=“Pull Request”>PR no seu repositório e o GitHub Actions detectará automaticamente os fluxos de trabalho e começará a executar os trabalhos.
O GitHub Actions mostrará um detalhamento de cada teste e, após a execução, indicará um
ou
dependendo se o teste passou ou falhou.
Se um teste falhou, clicar nos detalhes fornecerá algumas informações sobre o que falhou, o que pode dar pistas sobre o que está errado com seu código e o que precisa ser corrigido.
Adicione seus próprios testes
Para que os testes de plugin e componentes funcionem de forma eficaz, é importante que você escreva testes para o seu plugin ou componente de tema.
Para detalhes sobre como escrever testes de front-end com EmberJS, consulte:
- Write acceptance tests and component tests for Ember code in Discourse
- Introduction - Testing - Ember Guides
Para mais detalhes sobre como escrever testes RSpec com Rails, consulte:
Exemplos
Para sua conveniência, selecionamos alguns exemplos de plugins e componentes de tema que têm testes robustos integrados:
| Plugin / Componente | Testes do Lado do Cliente | Testes do Lado do Servidor |
|---|---|---|
| Assign | ||
| Calendar | ||
| Reactions | ||
| Right Sidebar Blocks | ||
| Tag Icons | ||
| Table Builder |
Este documento é controlado por versão - sugira alterações no github.
