지속적 통합(CI)
지속적 통합(CI)은 변경 사항을 통합하고 자동으로 테스트하는 소프트웨어 개발의 필수적인 측면입니다. CI를 통해 개발 프로세스에서 문제를 조기에 자주 발견하여 고품질 코드를 유지할 수 있습니다. Ultralytics에서는 다양한 CI 테스트를 사용하여 코드베이스의 품질과 무결성을 보장합니다.
CI 액션
다음은 CI 작업에 대한 간략한 설명입니다.
- CI: 이것은 단위 테스트, 린팅 검사 및 리포지토리에 따라 더 포괄적인 테스트를 실행하는 기본 CI 테스트입니다.
- Docker 배포: 이 테스트는 Dockerfile 및 관련 스크립트가 올바르게 작동하는지 확인하기 위해 Docker를 사용하여 프로젝트 배포를 확인합니다.
- 끊어진 링크: 이 테스트는 markdown 또는 HTML 파일에서 끊어지거나 사용할 수 없는 링크가 있는지 코드베이스를 검사합니다.
- CodeQL: CodeQL은 GitHub의 도구로, 코드에 대한 시맨틱 분석을 수행하여 잠재적인 보안 취약점을 찾고 고품질 코드를 유지하는 데 도움이 됩니다.
- PyPI 게시: 이 테스트는 프로젝트를 패키징하여 오류 없이 PyPi에 게시할 수 있는지 확인합니다.
CI 결과
다음은 주요 저장소에 대한 이러한 CI 테스트의 상태를 보여주는 표입니다.
리포지토리 | CI | Docker 배포 | 끊어진 링크 | CodeQL | PyPI 및 문서 게시 |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
Ultralytics | |||||
ios | |||||
yolo-flutter-app | |||||
hub | |||||
hub-sdk | |||||
thop | |||||
작업 | |||||
mkdocs | |||||
문서 | |||||
핸드북 |
각 배지는 해당 CI 테스트의 마지막 실행 상태를 보여줍니다. main
각 저장소의 브랜치입니다. 테스트에 실패하면 배지에 "실패" 상태가 표시되고, 통과하면 "통과" 상태가 표시됩니다.
테스트 실패가 발견되면 해당 저장소의 GitHub 이슈를 통해 보고해 주시면 큰 도움이 됩니다.
CI 테스트를 성공적으로 수행했다고 해서 모든 것이 완벽하다는 의미는 아닙니다. 배포하거나 변경 사항을 병합하기 전에 항상 코드를 수동으로 검토하는 것이 좋습니다.
코드 커버리지
코드 커버리지는 테스트 실행 시 실행되는 코드베이스의 비율을 나타내는 지표입니다. 이는 테스트가 코드를 얼마나 잘 실행하는지에 대한 통찰력을 제공하며, 테스트되지 않은 애플리케이션 부분을 식별하는 데 중요할 수 있습니다. 높은 코드 커버리지 비율은 종종 버그 발생 가능성이 낮다는 것과 관련이 있습니다. 그러나 코드 커버리지가 결함이 없음을 보장하지는 않는다는 점을 이해하는 것이 중요합니다. 이는 테스트에 의해 코드의 어떤 부분이 실행되었는지 나타낼 뿐입니다.
codecov.io와 통합
Ultralytics는 코드 커버리지를 측정하고 시각화하기 위한 널리 사용되는 온라인 플랫폼인 codecov.io와 리포지토리를 통합했습니다. Codecov는 자세한 통찰력, 커밋 간의 커버리지 비교, 코드에 직접 시각적 오버레이를 제공하여 어떤 라인이 커버되었는지 나타냅니다.
Codecov와의 통합을 통해 오류가 발생하기 쉽거나 추가 테스트가 필요한 영역에 집중하여 코드 품질을 유지하고 개선하는 것을 목표로 합니다.
커버리지 결과
다음에 대한 코드 커버리지 상태를 빠르게 확인하려면 ultralytics
python 패키지에 대한 배지 및 선버스트 시각 자료를 포함했습니다. ultralytics
커버리지 결과입니다. 이 이미지는 테스트에서 커버되는 코드의 백분율을 보여주며, 테스트 노력에 대한 간략한 메트릭을 제공합니다. 자세한 내용은 다음을 참조하십시오. https://codecov.io/github/ultralytics/ultralytics.
리포지토리 | 코드 커버리지 |
---|---|
Ultralytics |
아래의 선버스트 그래픽에서 가장 안쪽 원은 전체 프로젝트이고, 중심에서 멀어질수록 폴더가 있으며, 마지막으로 단일 파일이 있습니다. 각 조각의 크기와 색상은 각각 명령문의 수와 커버리지를 나타냅니다.
FAQ
Ultralytics에서 지속적 통합(CI)이란 무엇입니까?
Ultralytics의 지속적 통합(CI)은 코드 변경 사항을 자동으로 통합하고 테스트하여 높은 품질 표준을 보장합니다. 당사의 CI 설정에는 단위 테스트, 린팅 검사 및 포괄적인 테스트 실행이 포함됩니다. 또한 소프트웨어를 패키징하고 배포하기 위해 Docker 배포, 손상된 링크 검사, CodeQL 분석(보안 취약점용) 및 PyPI 게시를 수행합니다.
Ultralytics는 문서 및 코드에서 깨진 링크를 어떻게 확인합니까?
Ultralytics는 특정 CI 작업을 사용하여 markdown 및 HTML 파일 내에서 끊어진 링크를 확인합니다. 이는 사용자가 항상 정확하고 활성 상태인 리소스에 액세스할 수 있도록 끊어진 링크를 검색하고 식별하여 문서의 무결성을 유지하는 데 도움이 됩니다.
Ultralytics 코드베이스에 CodeQL 분석이 중요한 이유는 무엇인가요?
잠재적인 보안 취약점을 찾고 높은 품질 기준을 유지하기 위해 시맨틱 코드 분석을 수행하므로 CodeQL 분석은 Ultralytics에 매우 중요합니다. CodeQL을 통해 코드의 위험을 사전에 식별하고 완화하여 강력하고 안전한 소프트웨어 솔루션을 제공할 수 있습니다.
Ultralytics는 배포를 위해 Docker를 어떻게 활용합니까?
Ultralytics는 전용 CI 액션을 통해 프로젝트 배포의 유효성을 검사하기 위해 Docker를 사용합니다. 이 프로세스는 Dockerfile 및 관련 스크립트가 올바르게 작동하는지 확인하여 확장 가능하고 안정적인 AI 솔루션에 중요한 일관되고 재현 가능한 배포 환경을 제공합니다.
Ultralytics에서 자동화된 PyPI 게시의 역할은 무엇입니까?
자동화된 PyPI 게시를 통해 프로젝트를 오류 없이 패키징하고 게시할 수 있습니다. 이 단계는 Ultralytics의 Python 패키지를 배포하는 데 필수적이며, 사용자는 Python Package Index (PyPI)를 통해 간편하게 도구를 설치하고 사용할 수 있습니다.
Ultralytics는 코드 커버리지를 어떻게 측정하고, 그 이유는 무엇입니까?
Ultralytics는 Codecov와 통합하여 코드 커버리지를 측정하고, 테스트 중에 코드베이스가 얼마나 실행되는지에 대한 통찰력을 제공합니다. 높은 코드 커버리지는 테스트가 잘 된 코드를 나타내며, 버그가 발생하기 쉬운 테스트되지 않은 영역을 찾는 데 도움이 될 수 있습니다. 자세한 코드 커버리지 지표는 주요 리포지토리 또는 Codecov에 표시된 배지를 통해 확인할 수 있습니다.