Bỏ để qua phần nội dung

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 liên quan đến việc tích hợp các thay đổi và kiểm tra chúng tự động. CI cho phép chúng tôi duy trì mã chất lượng cao bằng cách nắm bắt các vấn đề sớm và thường xuyên trong quá trình phát triển. Tại Ultralytics, chúng tôi sử dụng các 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ã của chúng tôi.

Hành động CI

Dưới đây là mô tả ngắn gọn về các hành độ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 các bài kiểm tra đơn vị, kiểm tra linting và đôi khi kiểm tra toàn diện hơn tùy thuộc vào kho lưu trữ.
  • Triển khai Docker: Kiểm thử 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 đang hoạt động chính xác.
  • Liên kết bị hỏng: Thử nghiệm này quét cơ sở mã cho bất kỳ liên kết bị hỏng hoặc chết nào trong markdown hoặc các tệp HTML.
  • Mã QL: 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.
  • Nhà xuất bản PyPI: Thử nghiệm 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 thử nghiệm CI này cho các kho chính của chúng tôi:

Kho CI Triển khai Docker Liên kết bị hỏng Mã QL Xuất bản PyPI và Docs
Yolov3 YOLOv3 CI Xuất bản hình ảnh Docker Kiểm tra Liên kết bị hỏng Mã QL
yolov5 YOLOv5 CI Xuất bản hình ảnh Docker Kiểm tra Liên kết bị hỏng Mã QL
ultralytics ultralytics CI Xuất bản hình ảnh Docker Kiểm tra Liên kết bị hỏng Mã QL Xuất bản lên PyPI và triển khai tài liệu
Trung tâm HUB CI Kiểm tra Liên kết bị hỏng
Documents Kiểm tra Liên kết bị hỏngKiểm tra tên miền trang-xây dựng-triển khai

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 chi nhánh của kho lưu trữ tương ứng. Nếu bài kiểm tra không thành công, huy hiệu sẽ hiển thị trạng thái "không đạt" và nếu vượt qua, huy hiệu sẽ hiển thị trạng thái "đạt".

Nếu bạn nhận thấy một thử nghiệm thất bại, sẽ rất hữu ích nếu bạn có thể báo cáo nó thông qua sự cố 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. Bạn nên xem lại mã theo cách thủ công trước khi triển khai hoặc hợp nhất các thay đổi.

Phạm vi mã

Phạm vi mã là một chỉ số đại diện cho tỷ lệ phần trăm cơ sở mã của bạn được thực thi khi thử nghiệm của bạn chạy. Nó cung cấp cái nhìn sâu sắc về mức độ kiểm tra của bạn thực hiện mã của bạn và có thể rất quan trọng trong việc xác định các phần chưa được kiểm tra trong ứng dụng của bạn. Tỷ lệ phần trăm bao phủ mã cao thường liên quan đến khả năng mắc lỗi thấp hơn. Tuy nhiên, điều cần thiết là phải hiểu rằng phạm vi mã không đảm bảo không có lỗi. Nó chỉ đơn thuần chỉ ra phần nào của mã đã được thực thi bởi các bài kiểm tra.

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 mã. Codecov cung cấp thông tin chi tiết, so sánh phạm vi bảo hiểm giữa các cam kết và lớp phủ trực quan trực tiếp trên mã của bạn, cho biết dòng nào được bảo hiểm.

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ã của mình bằng cách tập trung vào các khu vực có thể dễ bị lỗi hoặc cần thử nghiệm 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 phạm vi mã của ultralytics python gói, chúng tôi đã bao gồm một huy hiệu và hình ảnh sunburst của ultralytics kết quả bảo hiểm. Những hình ảnh này cho thấy tỷ lệ 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 nhanh về các nỗ lực thử nghiệm của chúng tôi. Để biết chi tiết đầy đủ, vui lòng xem https://codecov.io/github/ultralytics/ultralytics.

Kho Phạm vi mã
ultralytics Codecov

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, một tệp duy nhất. Kích thước và màu sắc của mỗi lát được đại diện cho số lượng câu lệnh và phạm vi bảo hiểm, tương ứng.

Ultralytics Hình ảnh Codecov



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (7), Burhan-Q (1)

Ý kiến