YOLO Vision 2026:

Integração Contínua (CI)#

A Integração Contínua (CI) é um aspecto essencial do desenvolvimento de software que envolve a integração de alterações e o teste automático das mesmas. A CI permite-nos manter código de alta qualidade ao detectar problemas cedo e frequentemente no processo de desenvolvimento. Na Ultralytics, utilizamos vários testes de CI para garantir a qualidade e a integridade da nossa base de código.

Ações de CI#

Aqui tens uma breve descrição das nossas ações de CI:

  • CI: Este é o nosso teste de CI principal que envolve a execução de testes unitários, verificações de lint e, às vezes, testes mais abrangentes, dependendo do repositório.
  • Docker Deployment: Este teste verifica o implantamento do projeto usando Docker para garantir que o Dockerfile e os scripts relacionados estejam funcionando corretamente.
  • Broken Links: Este teste examina a base de código em busca de links quebrados ou inativos em nossos arquivos markdown ou HTML.
  • CodeQL: CodeQL é uma ferramenta do GitHub que realiza análise semântica em 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 nenhum erro.

Resultados de CI#

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

RepositórioCIImplantação DockerLinks QuebradosCodeQLPublicação PyPI e Docs
yolov3YOLOv3 CIPublish Docker ImagesCheck Broken linksCodeQL
yolov5YOLOv5 CIPublish Docker ImagesCheck Broken linksCodeQL
ultralyticsultralytics CIPublish Docker ImagesCheck Broken linksCodeQLPublish to PyPI and Deploy Docs Conda Builds
yolo-ios-appiOS App CICodeQLPublish iOS App
yolo-flutter-appFlutter App CICodeQLPublish to pub.dev
thopUltralytics ActionsCodeQLPublish to PyPI
actionsActions CICodeQLPublish to PyPI
mkdocsUltralytics ActionsCodeQLPublish to PyPI
docsUltralytics ActionsCheck Broken links
handbookUltralytics ActionsCheck Broken links
starsUltralytics ActionsUpdate Analytics
CLIPCLIP CI

Cada selo mostra o status da última execução do teste de CI correspondente na ramificação main do respectivo repositório. Se um teste falhar, o selo exibirá um status de "falha" e, se for aprovado, exibirá um status de "sucesso".

Se notares um teste a falhar, seria uma grande ajuda se o pudesses reportar através de uma issue no GitHub do respetivo repositório.

Lembra-te, um teste de CI bem-sucedido não significa que tudo esteja perfeito. É sempre recomendável rever manualmente o código antes da implementação ou da fusão de alterações.

Cobertura de 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 sobre quão bem os teus testes exercitam o teu código e pode ser crucial na identificação de partes não testadas da tua aplicação. Uma elevada percentagem de cobertura de código está 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. Apenas indica que partes do código foram executadas pelos testes.

Integração com codecov.io#

Na Ultralytics, integramos nossos repositórios ao 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 seu código, indicando quais linhas foram cobertas.

Ao integrar com o Codecov, pretendemos manter e melhorar a qualidade do nosso código, concentrando-nos em áreas que podem estar propensas a erros ou que necessitam de mais testes.

Resultados da Cobertura#

Para obter rapidamente uma visão geral do status de cobertura de código dos nossos repositórios, incluímos selos do Codecov e visualizações sunburst para cada projeto rastreado. O círculo mais interno de cada sunburst é 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, respectivamente. Para obter todos os detalhes, visite a organização Codecov da Ultralytics.

FAQ#

  • A Integração Contínua (CI) na Ultralytics envolve a integração e o teste automáticos de alterações de código para garantir padrões de alta qualidade. Nossa configuração de CI inclui a execução de testes unitários, verificações de lint e testes abrangentes. Além disso, realizamos implantamento no Docker, verificações de links quebrados, análise do CodeQL para vulnerabilidades de segurança e publicação no PyPI para empacotar e distribuir nosso software.

  • A análise do CodeQL é crucial para a Ultralytics, pois ela realiza análise de código semântica para encontrar potenciais vulnerabilidades de segurança e manter padrões de alta qualidade. Com o CodeQL, podemos identificar e mitigar riscos em nosso código de forma proativa, ajudando-nos a entregar soluções de software robustas e seguras.

  • A Ultralytics emprega o Docker para validar o implantamento dos nossos projetos por meio de uma ação de CI dedicada. Esse processo garante que nosso Dockerfile e os scripts associados estejam funcionando corretamente, permitindo ambientes de implantamento consistentes e reproduzíveis, que são críticos para soluções de IA escaláveis e confiáveis.

  • A publicação no PyPI automatizada garante que nossos projetos possam ser empacotados e publicados sem erros. Esta etapa é essencial para distribuir os pacotes Python da Ultralytics, permitindo que os usuários instalem e usem facilmente nossas ferramentas por meio do Python Package Index (PyPI).

  • A Ultralytics mede a cobertura de código integrando-se ao Codecov, fornecendo insights sobre quanto da base de código é executado durante os testes. Uma alta cobertura de código pode indicar um código bem testado, ajudando a descobrir áreas não testadas que podem ser propensas a bugs. Métricas detalhadas de cobertura de código podem ser exploradas por meio de selos exibidos em nossos principais repositórios ou diretamente no Codecov.

Comentários