Tích hợp liên tục như một thuật ngữ đề cập đến hai ý tưởng riêng biệt.
Đầu tiên là một quy trình công việc: thay vì mọi người trong nhóm làm việc trong chi nhánh của chính họ và sau một vài tuần lập trình cố gắng hợp nhất các thay đổi của họ vào dòng chính, những thay đổi đó được tích hợp (gần như) liên tục. Điều này cho phép các vấn đề nổi lên sớm và tránh những thay đổi không tương thích. Tuy nhiên, điều đó đòi hỏi chúng ta có thể dễ dàng kiểm tra xem một thay đổi có hoạt động hay không.
Đây là nơi mà ý tưởng thứ hai xuất hiện, hóa ra phổ biến hơn nhiều. Máy chủ CI là một môi trường sạch, nơi các thay đổi được kiểm tra càng nhanh càng tốt. Môi trường sạch sẽ là cần thiết để xây dựng có thể tái sản xuất. Nếu nó hoạt động một lần, nó sẽ luôn hoạt động. Điều này tránh được nhưng nó đã giải quyết được các vấn đề về máy của tôi. Đặc biệt, máy chủ CI có giá trị khi phần mềm của bạn chạy trên các hệ thống khác nhau hoặc trong các cấu hình khác nhau và bạn cần chắc chắn mọi thứ đều hoạt động.
Việc thiếu một bước xây dựng là không liên quan. Tuy nhiên, CI chỉ có ý nghĩa nếu bạn có một bộ thử nghiệm. Bộ kiểm tra này phải tự động và không được có lỗi. Nếu các thử nghiệm thất bại, nhà phát triển phù hợp sẽ nhận được thông báo để họ có thể khắc phục sự cố mà họ đã giới thiệu (phá vỡ bản dựng, ngay cả khi không có bản dựng nào dưới dạng biên dịch).
Nó chỉ ra rằng một máy chủ như vậy có giá trị không chỉ là thử nghiệm. Trên thực tế, hầu hết các phần mềm CI thực sự rất nhảm khi chạy thử nghiệm ở các cấu hình khác nhau, nhưng giỏi trong việc quản lý tất cả các loại công việc. Ví dụ, ngoài các bài kiểm tra đơn vị liên tục, có thể có một bài kiểm tra đầy đủ như một bản dựng hàng đêm. Phần mềm có thể được kiểm tra với nhiều phiên bản Python, các phiên bản thư viện khác nhau. Một trang web có thể được kiểm tra các liên kết chết. Chúng tôi có thể chạy phân tích tĩnh, kiểm tra kiểu, công cụ kiểm tra phạm vi, vv qua mã. Tài liệu có thể được tạo ra. Khi tất cả các bộ kiểm tra vượt qua, quy trình đóng gói có thể được bắt đầu để bạn sẵn sàng phát hành phần mềm của mình. Điều này hữu ích trong cài đặt nhanh, nơi bạn muốn có một sản phẩm có thể triển khai (và có thể demo) mọi lúc. Với sự phát triển của các ứng dụng web, cũng có ý tưởng triển khai liên tục: Nếu tất cả các thử nghiệm vượt qua, chúng tôi có thể tự động đẩy các thay đổi vào sản xuất. Tất nhiên, điều này đòi hỏi bạn phải thực sự tự tin trong bộ thử nghiệm của mình (nếu không, bạn có vấn đề lớn hơn).