Este documento descreve o fluxo de Integração Contínua e Entrega Contínua (CI/CD) do projeto AutoPattern, além de instruções sobre como testar localmente as pipelines utilizando o act antes de enviar o código para o repositório.
O projeto conta com dois workflows principais do GitHub Actions, localizados na pasta .github/workflows:
Garante a qualidade do código a cada nova modificação.
- Gatilhos: Executado a cada
pushepull_requestpara a branchmain. - Backend:
- Lint & Formatter: Utiliza o
ruffpara verificar e formatar o código Python. - Testes: Utiliza o
pytestpara a execução dos testes automatizados.
- Lint & Formatter: Utiliza o
- Frontend:
- Lint & Typecheck: Utiliza
eslint,prettieretscpara validar e garantir a tipagem do TypeScript. - Testes: Utiliza o
jestpara os testes unitários da interface.
- Lint & Typecheck: Utiliza
Responsável pelo empacotamento do aplicativo Desktop.
- Gatilho: Acionado automaticamente apenas quando o workflow
ci.ymlfor completado com sucesso. - Processo: Executa o
electron-buildercriando as versões distribuíveis para Linux, Windows e macOS.
Para garantir que o seu código passa nas verificações sem precisar criar commits sujos e poluir o histórico do repositório remoto, utilizamos a ferramenta act. O act roda os workflows do GitHub Actions localmente através de containers Docker.
Abra o terminal na raiz do projeto e execute os comandos abaixo de acordo com a parte do sistema que você deseja validar. É recomendado fazer isso antes de todo commit/push para a branch principal.
Para validar o estilo e a formatação do código:
act -j backend-lintPara executar a suíte de testes (pytest):
act -j backend-testPara validar erros do linter, prettier e checagem de tipos:
act -j frontend-lintPara executar a suíte de testes do frontend (jest):
act -j frontend-testO job de build depende do término e sucesso do workflow de CI. Para simulá-lo localmente via act, o projeto possui um arquivo configurado (event.json) que simula o payload de sucesso que o Github enviaria:
act -e event.json -j build(Nota: O act roda primariamente ambientes Linux/Ubuntu, então ele emulará a criação do instalador do Linux (.AppImage). A montagem para macOS e Windows será "skipada", mas já garante a integridade geral do build).
