Tôi muốn triển khai một nền tảng tích hợp liên tục dựa trên Jenkins. Vì tôi có nhiều loại dự án khác nhau (PHP/Symfony, nút, góc cạnh,…) và khi tôi muốn các thử nghiệm này chạy cả cục bộ lẫn trên Jenkins, tôi đã nghĩ đến việc sử dụng các vùng chứa Dockers.Chạy thử nghiệm Jenkins trong vùng chứa Docker xây dựng từ dockerfile trong codebase
Quá trình Tôi đang nhắm đến là:
- Yêu cầu hợp nhất được mở ra trên Github/Gitlab
- Một webhook thông báo Jenkins được yêu cầu hợp nhất
- Jenkins kéo repo, xây dựng các container và chạy một kịch bản lệnh shell để thực hiện các kiểm tra
- Khi các thử nghiệm kết thúc, Jenkins lấy kết quả từ một trong các thùng chứa (thông qua một khối lượng dùng chung) và xử lý các kết quả.
Tôi không muốn Jenkins nằm trong thùng chứa.
Với loại quá trình này, tôi hy vọng có thể chạy rất dễ dàng các bài kiểm tra trên mỗi máy phát triển với một cái gì đó như một docker-composer up
và sau đó trong một trong các container ./tests all
.
Tôi không quen lắm với Jenkins. Tôi đã đọc rất nhiều tài liệu, nhưng hầu hết trong số họ gợi ý định nghĩa các nô lệ Jenkins cho từng loại dự án trước. Tôi muốn mọi thứ trở nên năng động nhất có thể và yêu cầu ít cấu hình trên Jenkins càng tốt.
Tôi sẽ đánh giá cao mô tả quy trình thử nghiệm của bạn nếu bạn đã từng triển khai điều gì đó tương tự. Nếu bạn nghĩ rằng những gì tôi đang hướng tới là không thể, tôi cũng sẽ đánh giá cao nếu bạn có thể giải thích cho tôi tại sao.