Odpowiedź jest taka, że z pewnością nie są one zbędne.
Prawdą jest, że ten sam efekt końcowy można osiągnąć za pomocą skryptu bash, który zawiera polecenia drush (przynajmniej część budynku). Ale jeśli chcemy zintegrować nasz proces ze środowiskiem CI, takim jak JenkinsCI, to użycie czegoś takiego jak phing (mrówka lub kapistrano można tutaj zastąpić) jest dobrym rozwiązaniem.
Dzięki phing możemy podzielić proces kompilacji na odrębne segmenty, które mogą raportować do Jenkins w inteligentny sposób.
Na przykład Powiedz, że jako część mojego procesu kompilacji używam drush, aby włączyć dwa moduły, węzeł i powinien zawodzić. Następnie kompilacja powinna zakończyć się niepowodzeniem. Ale jeśli wszystko, co zrobimy, to powiedz JenkinsCI, aby uruchomiło następującą komendę powłoki, JenkinsCI powie, że kompilacja PASSED:
drush --quiet --yes @staging en node shouldfail
Najwyraźniej to nie w porządku. Jeśli jednak zamiast tego użyjemy mrówki lub phinga do zdefiniowania tego samego procesu, możemy również dodać logikę błędów, którą Jenkins rozumie, i dlatego zawiodą tak, jak powinny. Poniższy skrypt kompilacji phing próbuje zrobić to samo, co poprzednie polecenie, ale kończy się niepowodzeniem, tak jak się spodziewamy:
<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>
BTW mrówka i phing są prawie identyczne. Zaletą dla programistów PHP w korzystaniu z phing jest to, że mogą wygodniej rozszerzać phing.
Jeśli chodzi o rozwój Drupala i drusha, które są tak dobre, jak ja, nie widzę zbyt dużej wartości w rozszerzaniu phinga i sądzę, że uruchomienie zadań exec wystarczyłoby do stworzenia inteligentnego szablonu kompilacji.
Cóż, aby odpowiedzieć na moje pytanie, poświęciłem czas na zastanowienie się nad phingiem. W rzeczywistości jest dość intuicyjny i nie zajmuje to zbyt długo.