Làm thế nào là drush và jenkins được sử dụng cùng nhau để tích hợp liên tục?


30

Tôi nghe thấy những từ buzz, "tích hợp liên tục", "drush" và "jenkins" thường xuyên. Do đó, làm dấy lên sự quan tâm của tôi.

Làm thế nào là drush và jenkins được sử dụng cùng nhau để tích hợp liên tục?

Ngoài ra, tại sao bạn muốn sử dụng drush và jenkins cùng nhau?

Câu trả lời:


20

Đối với các dự án của tôi, tôi sử dụng một kịch bản xây dựng được tạo từ các lệnh Drush trong công việc Jenkins. Tôi sử dụng dự án Phing Drush Task của mình để chạy Drush từ tập lệnh xây dựng Phing . Điều này cho phép tôi tận dụng các tác vụ Phing hiện có (ví dụ: sao chép tệp, phplint, v.v.). Với sự giúp đỡ của Drush, kịch bản xây dựng này

  • Tải xuống tất cả mã không tùy chỉnh (ví dụ: mô-đun và chủ đề đóng góp của Drupal) với Drush Make to./dist
  • Mở rộng trình giữ chỗ trong một phiên bản settings.php(nghĩa là thay thế ${db_host}bằng tên máy chủ DB thực tế) trong khi sao chép nó vào ./dist/sites/defaultthư mục mới tải xuống .
  • Sao chép các mô-đun và chủ đề tùy chỉnh vào ./dist/sites/all/modules/custom./dist/sites/all/themes/custom
  • Chạy phplintcho tất cả các tệp từ các mô-đun và chủ đề tùy chỉnh của tôi.
  • Sao chép mọi thứ bên dưới ./distvào một webroot được cấu hình sẵn.
  • Chạy drush site-install testingdrush pm-enable simpletestcài đặt một trang web mới bằng cách sử dụng cơ sở mã xây dựng và có thể chạy SimpleTest.
  • Chạy drush test-runđể chạy bộ kiểm tra mô-đun tùy chỉnh của tôi.
  • Chạy đi drush coder-review.

Dưới đây là một mẫu build.xml được nhận xét để sử dụng Drush trong Jenkins.


Điều đó có nghĩa là môi trường CI của bạn ở trên cùng một máy so với máy chủ php của bạn? Tôi không hiểu cách bạn quản lý để sao chép các nguồn của riêng bạn trong các trang web / tất cả / mô-đun / tùy chỉnh (ví dụ). Điều này có lẽ là do tôi không biết cách thức hoạt động ... nhưng không nơi nào tôi thấy tương đương với nhiệm vụ scp / ftp từ CI mảngform của bạn đến Php.
Jean-Rémy Revy

1
Có, máy chủ CI và máy chủ web phục vụ trang web thử nghiệm nằm trên cùng một máy. Dĩ nhiên bạn cũng có thể sao chép tệp từ không gian làm việc CI sang máy chủ webserver. Lệnh rsync của Drush có thể được sử dụng cho việc này. Sau đó, Drush có thể được sử dụng để chạy lệnh trên máy chủ lưu trữ máy chủ web.
Pierre Buyle

3

Bạn có thể sử dụng Phing trong Jenkins, vì vậy bạn có thể sử dụng Drush thông qua http://drupal.org/project/phingdrushtask (Pierre Buyle trên SE.COM)

Ví dụ tùy chỉnh:

 <drush command='cc' root="${project.drupal.core.dir}" uri="${env.host.name}" assume="yes">
  <param>all</param>
</drush>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.