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.
  • PyPi Publishing: 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
hub HUB CI Verifica as liga√ß√Ķes quebradas
documentos Verifica as liga√ß√Ķes quebradas 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 2023-12-03
Autores: glenn-jocher (2)

Coment√°rios