Tích hợp liên tục (CI)
Tích hợp liên tục (CI) là một khía cạnh thiết yếu của phát triển phần mềm bao gồm tích hợp các thay đổi và tự động kiểm tra chúng. CI cho phép chúng tôi duy trì mã chất lượng cao bằng cách phát hiện sớm và thường xuyên các vấn đề trong quá trình phát triển. Tại Ultralytics , chúng tôi sử dụng nhiều bài kiểm tra CI khác nhau để đảm bảo chất lượng và tính toàn vẹn của cơ sở mã.
Hành động CI
Sau đây là mô tả ngắn gọn về các hoạt động CI của chúng tôi:
- CI : Đây là thử nghiệm CI chính của chúng tôi bao gồm chạy thử nghiệm đơn vị, kiểm tra lỗi và đôi khi là các thử nghiệm toàn diện hơn tùy thuộc vào kho lưu trữ.
- Triển khai Docker : Kiểm tra này kiểm tra việc triển khai dự án bằng Docker để đảm bảo Dockerfile và các tập lệnh liên quan hoạt động chính xác.
- Liên kết bị hỏng : Kiểm tra này quét cơ sở mã để tìm bất kỳ liên kết bị hỏng hoặc chết nào trong markdown hoặc tệp HTML.
- CodeQL : CodeQL là một công cụ từ GitHub thực hiện phân tích ngữ nghĩa trên mã của chúng tôi, giúp tìm ra các lỗ hổng bảo mật tiềm ẩn và duy trì mã chất lượng cao.
- Xuất bản PyPI : Bài kiểm tra này kiểm tra xem dự án có thể được đóng gói và xuất bản lên PyPi mà không có bất kỳ lỗi nào hay không.
Kết quả CI
Dưới đây là bảng hiển thị trạng thái của các bài kiểm tra CI này cho kho lưu trữ chính của chúng tôi:
Kho lưu trữ | CI | Triển khai Docker | Liên kết bị hỏng | Mã số | PyPI và Xuất bản Docs |
---|---|---|---|---|---|
yolov3 | |||||
yolov5 | |||||
ultralytics | |||||
hub-sdk | |||||
trung tâm | |||||
mkdocs | |||||
thóp | |||||
hành động | |||||
tài liệu | |||||
sổ tay hướng dẫn |
Mỗi huy hiệu hiển thị trạng thái của lần chạy cuối cùng của thử nghiệm CI tương ứng trên main
nhánh của kho lưu trữ tương ứng. Nếu một bài kiểm tra không thành công, huy hiệu sẽ hiển thị trạng thái "không thành công" và nếu thành công, huy hiệu sẽ hiển thị trạng thái "thành công".
Nếu bạn nhận thấy một bài kiểm tra nào đó không thành công, sẽ rất hữu ích nếu bạn có thể báo cáo vấn đề đó thông qua GitHub trong kho lưu trữ tương ứng.
Hãy nhớ rằng, một bài kiểm tra CI thành công không có nghĩa là mọi thứ đều hoàn hảo. Luôn nên xem xét mã thủ công trước khi triển khai hoặc hợp nhất các thay đổi.
Phạm vi mã
Độ bao phủ mã là một số liệu biểu thị phần trăm cơ sở mã của bạn được thực thi khi các bài kiểm tra của bạn chạy. Nó cung cấp thông tin chi tiết về mức độ các bài kiểm tra của bạn thực hiện mã của bạn tốt như thế nào và có thể rất quan trọng trong việc xác định các phần chưa được kiểm tra của ứng dụng của bạn. Phần trăm độ bao phủ mã cao thường liên quan đến khả năng xảy ra lỗi thấp hơn. Tuy nhiên, điều quan trọng là phải hiểu rằng độ bao phủ mã không đảm bảo không có lỗi. Nó chỉ cho biết những phần nào của mã đã được các bài kiểm tra thực thi.
Tích hợp với codecov.io
Tại Ultralytics , chúng tôi đã tích hợp kho lưu trữ của mình với codecov.io , một nền tảng trực tuyến phổ biến để đo lường và trực quan hóa phạm vi bao phủ của mã. Codecov cung cấp thông tin chi tiết, so sánh phạm vi bao phủ giữa các lần cam kết và lớp phủ trực quan trực tiếp trên mã của bạn, cho biết những dòng nào đã được bao phủ.
Bằng cách tích hợp với Codecov, chúng tôi mong muốn duy trì và cải thiện chất lượng mã bằng cách tập trung vào các khu vực dễ xảy ra lỗi hoặc cần kiểm tra thêm.
Kết quả bảo hiểm
Để nhanh chóng có được cái nhìn thoáng qua về trạng thái bao phủ mã của ultralytics
python gói, chúng tôi đã bao gồm một huy hiệu và hình ảnh tia nắng của ultralytics
kết quả bao phủ. Những hình ảnh này hiển thị phần trăm mã được bao phủ bởi các thử nghiệm của chúng tôi, cung cấp số liệu tổng quan về các nỗ lực thử nghiệm của chúng tôi. Để biết thông tin chi tiết đầy đủ, vui lòng xem https://codecov.io/github/ultralytics/ultralytics.
Kho lưu trữ | Phạm vi mã |
---|---|
ultralytics |
Trong đồ họa sunburst bên dưới, vòng tròn trong cùng là toàn bộ dự án, di chuyển ra khỏi trung tâm là các thư mục, sau đó, cuối cùng là một tệp duy nhất. Kích thước và màu sắc của mỗi lát cắt lần lượt biểu thị số lượng câu lệnh và phạm vi bao phủ.
CÂU HỎI THƯỜNG GẶP
Tích hợp liên tục (CI) là gì trong Ultralytics ?
Tích hợp liên tục (CI) trong Ultralytics bao gồm việc tự động tích hợp và kiểm tra các thay đổi mã để đảm bảo các tiêu chuẩn chất lượng cao. Thiết lập CI của chúng tôi bao gồm chạy các bài kiểm tra đơn vị, kiểm tra linting và các bài kiểm tra toàn diện . Ngoài ra, chúng tôi thực hiện triển khai Docker , kiểm tra liên kết bị hỏng , phân tích CodeQL để tìm lỗ hổng bảo mật và xuất bản PyPI để đóng gói và phân phối phần mềm của chúng tôi.
Làm thế nào Ultralytics kiểm tra các liên kết bị hỏng trong tài liệu và mã?
Ultralytics sử dụng một hành động CI cụ thể để kiểm tra các liên kết bị hỏng trong markdown và tệp HTML. Điều này giúp duy trì tính toàn vẹn của tài liệu của chúng tôi bằng cách quét và xác định các liên kết chết hoặc bị hỏng, đảm bảo rằng người dùng luôn có quyền truy cập vào các tài nguyên chính xác và trực tiếp.
Tại sao phân tích CodeQL lại quan trọng đối với Ultralytics ' cơ sở mã?
Phân tích CodeQL rất quan trọng đối với Ultralytics vì nó thực hiện phân tích mã ngữ nghĩa để tìm lỗ hổng bảo mật tiềm ẩn và duy trì các tiêu chuẩn chất lượng cao. Với CodeQL, chúng tôi có thể chủ động xác định và giảm thiểu rủi ro trong mã của mình, giúp chúng tôi cung cấp các giải pháp phần mềm mạnh mẽ và an toàn.
Làm thế nào Ultralytics sử dụng Docker để triển khai?
Ultralytics sử dụng Docker để xác thực việc triển khai các dự án của chúng tôi thông qua một hành động CI chuyên dụng. Quy trình này đảm bảo Dockerfile và các tập lệnh liên quan của chúng tôi hoạt động chính xác, cho phép các môi trường triển khai nhất quán và có thể tái tạo, điều này rất quan trọng đối với các giải pháp AI có khả năng mở rộng và đáng tin cậy.
Vai trò của việc xuất bản PyPI tự động là gì? Ultralytics ?
Việc xuất bản PyPI tự động đảm bảo rằng các dự án của chúng tôi có thể được đóng gói và xuất bản mà không có lỗi. Bước này rất cần thiết để phân phối Ultralytics ' Python các gói, cho phép người dùng dễ dàng cài đặt và sử dụng các công cụ của chúng tôi thông qua Python Chỉ mục gói (PyPI).
Làm thế nào Ultralytics Đo lường phạm vi phủ sóng của mã và tại sao điều này lại quan trọng?
Ultralytics đo lường độ phủ mã bằng cách tích hợp với Codecov , cung cấp thông tin chi tiết về lượng cơ sở mã được thực thi trong quá trình kiểm tra. Độ phủ mã cao có thể chỉ ra mã được kiểm tra tốt, giúp phát hiện ra các khu vực chưa được kiểm tra có thể dễ bị lỗi. Có thể khám phá các số liệu về độ phủ mã chi tiết thông qua huy hiệu được hiển thị trên kho lưu trữ chính của chúng tôi hoặc trực tiếp trên Codecov .