Ir para o conteúdo

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 testes automatizados. A CI nos permite manter um código de alta qualidade, detectando problemas de forma precoce e frequente no processo de desenvolvimento. Na Ultralytics, usamos vários testes de CI para garantir a qualidade e a integridade de nossa base de código.

Ações de CI

Aqui está uma breve descrição de nossas ações de CI:

  • CI: Este é nosso teste de CI primário que envolve a execução de testes de unidade, verificações de linting e, às vezes, testes mais abrangentes, dependendo do repositório.
  • Implementação com Docker: Este teste verifica a implementação do projeto usando Docker para garantir que o Dockerfile e os scripts relacionados estão a funcionar corretamente.
  • Links Quebrados: 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 possíveis vulnerabilidades de segurança e manter a alta qualidade do código.
  • PyPI Publishing: Este teste verifica se o projeto pode ser empacotado e publicado no PyPI sem quaisquer erros.

Resultados de CI

Abaixo está a tabela mostrando o status desses testes de CI para nossos principais repositórios:

RepositórioCIImplantação com DockerLinks QuebradosCodeQLPublicação no PyPI e Documentação
yolov3YOLOv3 CIPublicar Imagens DockerVerificar links quebradosCodeQL
yolov5YOLOv5 CIPublicar Imagens DockerVerificar links quebradosCodeQL
ultralyticsultralytics CIPublicar Imagens DockerVerificar links quebradosCodeQLPublicar no PyPI e Implementar DocumentaçãoCompilações Conda
yolo-ios-appCI da Aplicação iOSCodeQLPublicar Aplicação iOS
yolo-flutter-appCI da Aplicação FlutterCodeQLPublicar em pub.dev
hubHUB CIVerificar links quebrados
hub-sdkHUB-SDK CIVerificar links quebradosCodeQLPublicar no PyPI
thopAções UltralyticsCodeQLPublicar no PyPI
açõesAções de CICodeQLPublicar no PyPI
mkdocsAções UltralyticsCodeQLPublicar no PyPI
documentosAções UltralyticsVerificar links quebradosVerificar domíniospages-build-deployment
manualAções UltralyticsVerificar links quebradospages-build-deployment
estrelasAções UltralyticsAtualizar a análise
CLIPCLIP CI

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

Se você notar uma falha no teste, seria de grande ajuda se você pudesse relatá-lo por meio de um problema no GitHub no repositório respectivo.

Lembre-se de que um teste de CI bem-sucedido não significa que tudo esteja perfeito. É sempre recomendável revisar manualmente o código antes da implantação ou da fusão de alterações.

Cobertura de Código

A cobertura de código é uma métrica que representa a porcentagem da sua base de código que é executada quando seus testes são executados. Ela fornece informações sobre o quão bem seus testes exercitam seu código e pode ser crucial na identificação de partes não testadas de sua aplicação. Uma alta porcentagem de cobertura de código é frequentemente associada a uma menor probabilidade de bugs. No entanto, é essencial entender que a cobertura de código não garante a ausência de defeitos. Ela meramente indica quais partes do código foram executadas pelos testes.

Integração com codecov.io

Na Ultralytics, integramos nossos repositórios com o codecov.io, uma plataforma online popular para medir e visualizar a cobertura do 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, nosso objetivo é manter e melhorar a qualidade do nosso código, concentrando-nos em áreas que podem ser propensas a erros ou que necessitam de mais testes.

Resultados de Cobertura

Para obter rapidamente um vislumbre do status de cobertura de código do ultralytics pacote python, incluímos um selo e um visual sunburst do ultralytics resultados de cobertura. Estas imagens mostram a porcentagem de código coberta pelos nossos testes, oferecendo uma métrica rápida dos nossos esforços de teste. Para detalhes completos, consulte https://codecov.io/github/ultralytics/ultralytics.

RepositórioCobertura de Código
ultralyticscodecov

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, respectivamente.

Imagem Ultralytics Codecov

FAQ

O que é Integração Contínua (CI) em Ultralytics?

A Integração Contínua (CI) na Ultralytics envolve a integração e 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 de unidade, verificações de linting e testes abrangentes. Além disso, realizamos a implantação do Docker, verificações de links quebrados, análise CodeQL para vulnerabilidades de segurança e publicação PyPI para empacotar e distribuir nosso software.

A Ultralytics usa uma ação de CI específica para verificar links quebrados dentro de nossos arquivos markdown e HTML. Isso ajuda a manter a integridade de nossa documentação, escaneando e identificando links mortos ou quebrados, garantindo que os usuários sempre tenham acesso a recursos precisos e ativos.

Por que a análise CodeQL é importante para a base de código da Ultralytics?

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

Como a Ultralytics utiliza o Docker para implantação?

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

Qual é o papel da publicação automatizada de PyPI na Ultralytics?

A publicação automatizada no PyPI 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 através do Índice de Pacotes Python (PyPI).

Como a Ultralytics mede a cobertura do código e por que isso é importante?

A Ultralytics mede a cobertura de código integrando-se com o Codecov, fornecendo insights sobre a quantidade do código base que é executada 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.



📅C riado há 2 anos ✏️ Atualizado há 5 dias
glenn-jocherleonnilpderrengerUltralyticsAssistantBurhan-Q

Comentários