Tôi là một nhà phát triển đơn độc hầu hết thời gian của tôi, làm việc trên một số dự án lớn, chủ yếu dựa trên PHP. Tôi muốn chuyên nghiệp hóa và tự động hóa cách xử lý các thay đổi đối với cơ sở mã và tạo quy trình Tích hợp liên tục để có thể chuyển đổi để làm việc trong một nhóm mà không cần phải thực hiện các thay đổi cơ bản.
Những gì tôi đang làm bây giờ là, tôi có một môi trường thử nghiệm cục bộ cho mọi dự án; Tôi sử dụng SVN cho từng dự án; các thay đổi được kiểm tra cục bộ và sau đó được chuyển sang phiên bản trực tuyến, thường là qua FTP. Tài liệu API được tạo thủ công từ mã nguồn; Các bài kiểm tra đơn vị là thứ tôi đang đi vào từ từ, và nó chưa phải là một phần của thói quen hàng ngày của tôi.
"Chu kỳ xây dựng" tôi đang hình dung sẽ làm như sau:
Một thay đổi được kiểm tra vào SVN sau khi đã được thử nghiệm cục bộ.
Tôi bắt đầu quá trình xây dựng. Bản sửa đổi SVN HEAD được kiểm tra, sửa đổi nếu cần và sẵn sàng để tải lên.
Tài liệu API được tạo tự động - nếu tôi chưa thiết lập chi tiết, sử dụng mẫu mặc định, quét toàn bộ cơ sở mã.
Bản sửa đổi mới được triển khai đến vị trí từ xa thông qua FTP (Bao gồm một số đổi tên thư mục, chỉnh sửa, nhập cơ sở dữ liệu và các lượt thích.) Đây là điều tôi đã rất thích phing , nhưng tôi mở cho các lựa chọn thay thế.
Các bài kiểm tra đơn vị cư trú tại một địa điểm được xác định trước được chạy. Tôi được thông báo về sự thất bại hoặc thành công của họ khi sử dụng E-Mail, RSS hoặc (tốt nhất là) đầu ra HTML mà tôi có thể lấy và đưa vào một trang web.
(tùy chọn) tệp văn bản "changelog" của người dùng cuối ở vị trí được xác định trước sẽ được cập nhật với một phần được xác định trước của thông báo cam kết ("Hiện tại có thể lọc cả hai" foo "và" bar " thời gian). Thông báo này không nhất thiết phải giống với thông điệp cam kết SVN, có thể chứa nhiều thông tin nội bộ hơn.
Những thứ như số liệu mã, kiểm tra kiểu mã, v.v. không phải là trọng tâm chính của tôi ngay bây giờ, nhưng về lâu dài, chắc chắn họ sẽ làm được. Các giải pháp mang đến sự vượt trội này được xem xét rất tử tế.
Tôi đang tìm kiếm
Phản hồi và kinh nghiệm từ những người đang hoặc đang ở trong tình huống tương tự và đã thực hiện thành công giải pháp cho việc này
Đặc biệt, hướng dẫn từng bước tốt và hướng dẫn về cách thiết lập tính năng này
Các giải pháp cung cấp càng nhiều tự động hóa càng tốt , ví dụ bằng cách tạo API bộ xương, các trường hợp thử nghiệm, v.v. cho mỗi dự án mới.
và cũng
- Khuyến nghị sản phẩm . Những gì tôi biết cho đến nay là phing / ant để xây dựng và phpUnderControl hoặc Hudson cho phần báo cáo. Tôi thích tất cả những gì tôi có thể thấy, nhưng tất nhiên tôi không có kinh nghiệm chi tiết với họ.
Tôi bị ngập trong công việc, vì vậy tôi có thiên hướng mạnh mẽ đối với các giải pháp đơn giản. Mặt khác, nếu một tính năng bị thiếu, tôi sẽ khóc vì nó quá hạn chế. :) Giải pháp điểm và nhấp cũng được chào đón. Tôi cũng đề xuất các sản phẩm thương mại có thể làm việc với các dự án PHP.
Thiết lập của tôi
Tôi đang làm việc trên Windows cục bộ (chính xác là 7) và hầu hết các dự án máy khách đều chạy trên ngăn xếp LAMP, thường là trên lưu trữ chia sẻ (= không có SSH từ xa). Tôi đang tìm kiếm giải pháp mà tôi có thể chạy trong môi trường của riêng tôi. Tôi đã sẵn sàng để thiết lập một máy ảo Linux cho việc này, không vấn đề gì. Các giải pháp lưu trữ chỉ thú vị đối với tôi nếu chúng cung cấp tất cả các khía cạnh được mô tả hoặc đủ linh hoạt để tương tác với các phần khác của quy trình.
Tiền thưởng Tôi chấp nhận câu trả lời mà tôi cảm thấy sẽ cho tôi nhiều dặm nhất. Có rất nhiều đầu vào tuyệt vời ở đây, tôi ước tôi có thể chấp nhận nhiều hơn một câu trả lời. Cảm ơn mọi người!