Compilações
No Odoo.sh, uma build é um banco de dados carregado por um servidor Odoo (odoo/odoo e odoo/enterprise) executando uma revisão específica do seu repositório de projeto em um ambiente containerizado. Seu propósito é testar o comportamento adequado do servidor, do banco de dados e dos recursos associados a essa revisão.
Visão geral
Na visualização Builds, uma linha representa um branch e uma célula dentro dessa linha representa uma build desse branch.
A maioria das builds é criada após pushes para seus branches do repositório GitHub. Elas também podem ser criadas através de outras operações, como importar um banco de dados no Odoo.sh ou solicitar uma recriação de uma build para um branch no seu projeto.
As builds podem ter três status possíveis:
A build is considered successful if no errors or warnings occur during its creation. Successful builds are highlighted in green.
A build is considered almost successful if warnings occur, but there are no errors. Almost successful builds are highlighted in yellow.
A build is considered failed if errors occur during its creation. Failed builds are highlighted in red.
Estágios
Produção
A primeira build de um branch de produção cria um banco de dados do zero. Se essa build for bem-sucedida, esse banco de dados se tornará o banco de dados de produção do seu projeto.
A partir de então, pushes para o branch de produção criarão novas builds que tentarão carregar o banco de dados usando um servidor executando a nova revisão.
Se a build for bem-sucedida ou quase bem-sucedida, o banco de dados de produção será executado com essa build e sua revisão associada.
Se a build falhar ao carregar ou atualizar o banco de dados, a build bem-sucedida anterior será reutilizada para carregar o banco de dados. Nesse caso, o banco de dados continua sendo executado usando a revisão bem-sucedida anterior.
Teste
Builds de staging duplicam o banco de dados de produção e tentam carregar essa cópia usando as revisões dos branches de staging.
Cada vez que você faz push de uma nova revisão para um branch de staging, a build resultante usa uma cópia recém-criada do banco de dados de produção. Bancos de dados não são reutilizados entre builds do mesmo branch. Isso garante que:
Staging builds use databases that closely match the current production state, so your tests are not performed on outdated data.
You can freely experiment within a staging database. When you want to start over with a new copy of the production database, you can request a rebuild.
No entanto, isso também significa que se você fizer alterações de configuração em um banco de dados de staging e não as aplicar em produção, essas alterações não estarão presentes na próxima compilação do mesmo branch de staging.
Desenvolvimento
As compilações de desenvolvimento criam novos bancos de dados, carregam os dados de demonstração e executam os testes unitários.
Uma compilação será considerada com falha se os testes falharem durante a instalação, pois são projetados para gerar erros quando algo está errado.
Se todos os testes passarem e nenhum erro ocorrer, a compilação será considerada bem-sucedida.
Recursos
O branch de produção sempre aparece primeiro. Os outros branches são ordenados pela hora de sua última compilação criada. O estágio destacado em roxo corresponde ao estágio selecionado no menu Branches.
Para cada branch, você pode:
Access the latest build's database by clicking Connect.
Jump to the branch's code by clicking Github.
Create a new build by clicking Rebuild. It uses the latest revision of the branch (it is not available if a build is already in progress for that branch).
Para cada compilação, você pode:
View the revision changes by clicking the fa-github (GitHub) icon.
Access the build's database as the administrator by clicking Connect or as another user by clicking the fa-caret-down (More Actions) button next to Connect and selecting Connect as.
Access the same tools as in the branches view by clicking the fa-caret-down (More Actions) button next to Connect and selecting Logs, Web Shell, Editor, Outgoing e-mails (for the staging and development stages), Monitoring, and Download DB dump (for the production and staging stages).