Configurar Integração Contínua usando GitHub Actions

:mag: Visão Geral

Para criar uma extensão robusta para o Discourse, pode ser inteligente incluir Integração Contínua (CI) em seu plugin ou componente de tema. Isso ajudará a detectar erros precocemente e reduzirá as chances de bugs no seu código.

Configurar um fluxo de trabalho de CI usando GitHub Actions para automatizar builds e testes é uma abordagem que a equipe do Discourse utiliza em todos os nossos componentes, e recomendamos que você faça o mesmo.

:gear: 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, esses podem ser arquivos .yml para linting e testes.

Criamos fluxos de trabalho 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 Usar este modelo para criar um repositório de plugin/componete de tema baseado no modelo.

Alternativamente, se você já tem um projeto ao qual deseja adicionar os fluxos de trabalho, basta copiar o fluxo de trabalho relevante para a pasta .github/workflows/ do seu repositório:

:electric_plug: Plugins: discourse-plugin.yml

:jigsaw: Temas e Componentes de Tema: discourse-theme.yml

:point_up: Esses modelos estão travados em uma versão específica major dos nossos fluxos de trabalho reutilizáveis. Pequenas melhorias que fazemos nos fluxos de trabalho entrarão em vigor automaticamente no seu tema/plugin. Para mudanças quebradas (por exemplo, introduzir um novo linter), aumentaremos a versão major dos fluxos de trabalho reutilizáveis, e você precisará atualizar seu fluxo de trabalho para apontar para a nova versão

:tada: Pronto! Você está configurado! Simplesmente, crie um commit ou um PR para seu repositório e o GitHub Actions detectará automaticamente os fluxos de trabalho e começará a executar as tarefas.

O GitHub Actions mostrará uma divisão de cada teste e, após a execução, indicará um :white_check_mark: ou :x:, dependendo se o teste passou ou falhou.

Se um teste falhar, clicar nos detalhes fornecerá algumas informações sobre o que falhou, o que pode dar a você pistas sobre o que está errado no seu código e o que precisa ser corrigido.

Ver exemplo

:white_check_mark: Adicione seus próprios testes

Para que os testes de plugins e componentes funcionem efetivamente, é importante que você escreva testes para seu plugin ou componente de tema.

Para detalhes sobre como escrever testes front-end com EmberJS, veja:

Para mais detalhes sobre como escrever testes RSpec com Rails, veja:

:bulb: Exemplos

Para seu benefício, selecionamos alguns exemplos de plugins e componentes de tema que possuem testes robustos integrados:


Este documento está sob controle de versão - sugira alterações no GitHub.

15 curtidas