Salta para o conteúdo

Integração contínua (CI)

A Integração Contínua (IC) é um aspeto essencial do desenvolvimento de software que envolve a integração de alterações e o seu teste automático. A IC permite-nos manter um código de alta qualidade, detectando os problemas numa fase inicial e frequente do processo de desenvolvimento. Em Ultralytics, usamos vários testes de IC para garantir a qualidade e a integridade da nossa base de código.

Acções de IC

Segue-se uma breve descrição das nossas acções de IC:

  • CI: Este é o nosso principal teste de CI que envolve a execução de testes unitários, verificações de linting e, por vezes, testes mais abrangentes, dependendo do repositório.
  • Implantação do Docker: Este teste verifica a implantação do projeto usando o Docker para garantir que o Dockerfile e os scripts relacionados estejam funcionando corretamente.
  • Links quebrados: Este teste verifica a base de código em busca de links quebrados ou mortos em nossos arquivos markdown ou HTML.
  • CodeQL: O CodeQL é uma ferramenta do GitHub que realiza análises semânticas no nosso código, ajudando a encontrar potenciais vulnerabilidades de segurança e a manter um código de alta qualidade.
  • Publicação no PyPI: Este teste verifica se o projeto pode ser empacotado e publicado no PyPi sem quaisquer erros.

Resultados da IC

Abaixo está a tabela que mostra o estado destes testes de CI para os nossos principais repositórios:

Repositório CI Implantação do Docker Ligações quebradas CodeQL Publicação de PyPI e Docs
yolov3 YOLOv3 CI Publicar imagens do Docker Verifica as ligações quebradas CodeQL
yolov5 YOLOv5 CI Publicar imagens do Docker Verifica as ligações quebradas CodeQL
ultralytics ultralytics CI Publicar imagens do Docker Verifica as ligações quebradas CodeQL Publica no PyPI e implementa os documentos
cubo HUB CI Verifica as ligações quebradas
documentos Verifica as ligações quebradasVerifica os domínios páginas-criar-implantação

Cada emblema mostra o status da última execução do teste de CI correspondente no main do respetivo repositório. Se um teste falhar, o emblema apresentará o estado "falhando", e se passar, apresentará o estado "passando".

Se notares que um teste está a falhar, seria uma grande ajuda se o reportasses através de um problema no GitHub no respetivo repositório.

Lembra-te, um teste de CI bem sucedido não significa que tudo está perfeito. Recomenda-se sempre que revejas manualmente o código antes da implementação ou da fusão de alterações.

Cobertura do código

A cobertura de código é uma métrica que representa a percentagem da tua base de código que é executada quando os teus testes são executados. Fornece uma visão de como os seus testes exercitam o seu código e pode ser crucial na identificação de partes não testadas da sua aplicação. Uma alta porcentagem de cobertura de código é frequentemente associada a uma menor probabilidade de bugs. No entanto, é essencial compreender que a cobertura de código não garante a ausência de defeitos. Indica apenas quais as partes do código que foram executadas pelos testes.

Integração com codecov.io

Em Ultralytics, integrámos os nossos repositórios com codecov.io, uma plataforma online popular para medir e visualizar a cobertura de código. O Codecov fornece insights detalhados, comparações de cobertura entre commits e sobreposições visuais diretamente no teu código, indicando quais linhas foram cobertas.

Ao integrarmos o Codecov, pretendemos manter e melhorar a qualidade do nosso código, concentrando-nos em áreas que possam ser propensas a erros ou que necessitem de mais testes.

Resultados da cobertura

Para obter rapidamente um vislumbre do estado da cobertura de código do ultralytics python incluímos um crachá e uma imagem de sol do ultralytics resultados de cobertura. Estas imagens mostram a percentagem de código coberto pelos nossos testes, oferecendo uma métrica rápida dos nossos esforços de teste. Para mais informações, consulta https://codecov.io/github/ultralytics/ultralytics.

Repositório Cobertura do código
ultralytics codecov

No gráfico de explosão solar abaixo, o círculo mais interno é o projeto inteiro, afastando-se do centro estão as pastas e, finalmente, um único arquivo. O tamanho e a cor de cada fatia representam o número de declarações e a cobertura, respetivamente.

Ultralytics Imagem Codecov



Criado em 2023-11-12, Atualizado em 2024-04-18
Autores: glenn-jocher (5), Burhan-Q (1)

Comentários