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.
  • Publicação no PyPI: Este teste verifica se o projeto pode ser empacotado e publicado no PyPi sem erros.

Resultados de CI

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

Repositório CI Implantação com Docker Links Quebrados CodeQL Publicação no PyPI e Documentação
yolov3 YOLOv3 CI Publicar Imagens Docker Verificar links quebrados CodeQL
yolov5 YOLOv5 CI Publicar Imagens Docker Verificar links quebrados CodeQL
ultralytics ultralytics CI Publicar Imagens Docker Verificar links quebrados CodeQL Publicar no PyPI e Implementar Documentação Compilações Conda
hub-sdk HUB-SDK CI Verificar links quebrados CodeQL Publicar no PyPI
hub HUB CI Verificar links quebrados
mkdocs Ações Ultralytics CodeQL Publicar no PyPI
thop Ações Ultralytics CodeQL Publicar no PyPI
ações Ações Ultralytics CodeQL Publicar no PyPI
documentos Ações Ultralytics Verificar links quebradosVerificar domínios pages-build-deployment
manual Ações Ultralytics Verificar links quebrados pages-build-deployment

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ório Cobertura de 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, 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.



📅 Criado há 1 ano ✏️ Atualizado há 2 meses

Comentários