Vai al contenuto

Integrazione continua (CI)

L'integrazione continua (CI) è un aspetto essenziale dello sviluppo del software che prevede l'integrazione delle modifiche e il loro test automatico. La CI ci permette di mantenere un codice di alta qualità individuando i problemi nelle prime fasi del processo di sviluppo. Su Ultralytics utilizziamo diversi test di CI per garantire la qualità e l'integrità della nostra base di codice.

Azioni dell'IC

Ecco una breve descrizione delle nostre azioni di CI:

  • CI: è il nostro test CI principale che prevede l'esecuzione di test unitari, controlli di linting e talvolta test più completi a seconda del repository.
  • Distribuzione Docker: Questo test verifica la distribuzione del progetto utilizzando Docker per assicurarsi che il file Docker e i relativi script funzionino correttamente.
  • Collegamenti interrotti: Questo test analizza il codice alla ricerca di eventuali link rotti o morti nei nostri file markdown o HTML.
  • CodeQL: CodeQL è uno strumento di GitHub che esegue un'analisi semantica del nostro codice, aiutandoci a trovare potenziali vulnerabilità di sicurezza e a mantenere un codice di alta qualità.
  • Pubblicazione su PyPI: questo test verifica se il progetto può essere impacchettato e pubblicato su PyPi senza errori.

Risultati dell'IC

Di seguito è riportata una tabella che mostra lo stato di questi test CI per i nostri repository principali:

Repository CI Distribuzione di Docker Collegamenti interrotti CodeQL Pubblicazione di PyPI e Docs
yolov3 YOLOv3 CI Pubblicare immagini Docker Controlla i link rotti CodeQL
yolov5 YOLOv5 CI Pubblicare immagini Docker Controlla i link rotti CodeQL
ultralytics ultralytics CI Pubblicare immagini Docker Controlla i link rotti CodeQL Pubblicare su PyPI e distribuire i documenti
hub HUB CI Controlla i link rotti
documenti Controlla i link rottiControlla i domini pagine-costruzione-distribuzione

Ciascun badge mostra lo stato dell'ultima esecuzione del test CI corrispondente sul sito main del rispettivo repository. Se un test fallisce, il badge mostrerà lo stato "failing" (fallito), mentre se passa, mostrerà lo stato "passing" (superato).

Se noti che un test fallisce, sarebbe di grande aiuto se potessi segnalarlo tramite un problema GitHub nel rispettivo repository.

Ricorda che un test CI riuscito non significa che tutto sia perfetto. È sempre consigliabile rivedere manualmente il codice prima di distribuire o unire le modifiche.

Copertura del codice

La copertura del codice è una metrica che rappresenta la percentuale della tua base di codice che viene eseguita durante l'esecuzione dei test. Fornisce un'idea di quanto i test esercitino il codice e può essere fondamentale per identificare le parti non testate dell'applicazione. Un'alta percentuale di copertura del codice è spesso associata a una minore probabilità di bug. Tuttavia, è fondamentale capire che la copertura del codice non garantisce l'assenza di difetti. Indica semplicemente quali parti del codice sono state eseguite dai test.

Integrazione con codecov.io

Su Ultralytics abbiamo integrato i nostri repository con codecov.io, una famosa piattaforma online per misurare e visualizzare la copertura del codice. Codecov fornisce approfondimenti dettagliati, confronti di copertura tra i commit e sovrapposizioni visive direttamente sul codice, indicando quali linee sono state coperte.

Grazie all'integrazione con Codecov, ci proponiamo di mantenere e migliorare la qualità del nostro codice concentrandoci sulle aree che potrebbero essere soggette a errori o che necessitano di ulteriori test.

Risultati della copertura

Per avere rapidamente un'idea dello stato di copertura del codice del file ultralytics python Abbiamo incluso un badge e una visuale a raggiera dell'immagine del ultralytics risultati della copertura. Queste immagini mostrano la percentuale di codice coperta dai nostri test, offrendo un'indicazione immediata dei nostri sforzi di testing. Per maggiori dettagli, consulta https://codecov.io/github/ultralytics/ultralytics.

Repository Copertura del codice
ultralytics codecov

Nel grafico a raggiera qui sotto, il cerchio più interno rappresenta l'intero progetto, mentre allontanandosi dal centro si trovano le cartelle e, infine, un singolo file. La dimensione e il colore di ogni fetta rappresentano rispettivamente il numero di dichiarazioni e la copertura.

Ultralytics Immagine Codecov



Creato 2023-11-12, Aggiornato 2024-04-18
Autori: glenn-jocher (5), Burhan-Q (1)

Commenti