Câu trả lời là chúng chắc chắn không dư thừa.
Đúng là người ta có thể thực hiện cùng một kết quả cuối cùng bằng cách sử dụng tập lệnh bash bao gồm các lệnh drush (ít nhất là phần xây dựng). Nhưng, nếu những gì chúng tôi đang muốn làm là tích hợp quy trình của chúng tôi vào một khung CI như JenkinsCI, thì sử dụng thứ gì đó như phing (ant hoặc capistrano có thể được thay thế ở đây) là cách tốt nhất.
Với phing, chúng ta có thể chia quá trình xây dựng thành các phân đoạn riêng biệt có thể báo cáo lại cho Jenkins một cách thông minh.
Ví dụ. Nói rằng như là một phần của quá trình xây dựng của tôi, tôi sử dụng drush để kích hoạt hai mô-đun, nút và nút. Sau đó, việc xây dựng nên thất bại. Nhưng nếu tất cả những gì chúng ta làm là bảo JenkinsCI chạy lệnh shell sau, JenkinsCI sẽ nói rằng bản dựng PASSED:
drush --quiet --yes @staging en node shouldfail
Rõ ràng điều đó không đúng. Tuy nhiên, nếu thay vào đó, chúng ta sử dụng ant hoặc phing để xác định cùng một quy trình, chúng ta cũng có thể thêm một số logic thất bại mà Jenkins hiểu, và do đó thất bại như bình thường. Tập lệnh xây dựng phing sau đây cố gắng thực hiện tương tự như lệnh cũ, nhưng không thành công như chúng ta mong đợi:
<project name="staging" default="enable modules" description="Jenkins Staging Build">
<target name="enable modules">
<exec command="drush --quiet --yes @staging en node shouldfail" error='error' checkreturn="true">
</exec>
<loadfile property="en.error" file="error" />
<if>
<contains string="${en.error}" substring="warning" />
<then>
<property name="en.fail" value="Could not enable all modules" />
</then>
</if>
<fail if="en.fail" message="${en.fail}" />
</target>
</project>
Kiến BTW và phing gần như giống hệt nhau. Lợi thế cho các nhà phát triển PHP trong việc sử dụng phing là họ có thể thoải mái mở rộng phing hơn.
Đối với việc phát triển Drupal và drush cũng tốt như vậy, tôi không thấy quá nhiều giá trị trong việc mở rộng phing và nghĩ rằng việc chạy các tác vụ thực thi sẽ đủ để tạo ra một mẫu xây dựng thông minh.
Vâng, để trả lời câu hỏi của tôi, cuối cùng tôi đã đầu tư thời gian để tìm ra phing. Nó thực sự khá trực quan và không mất quá nhiều thời gian để tìm ra.