대답은 확실히 중복되지 않는다는 것입니다.
drush 명령 (적어도 건물 부분)을 포함하는 bash 스크립트를 사용하여 동일한 최종 결과를 얻을 수 있다는 것은 사실입니다. 그러나 JenkinsCI와 같은 CI 프레임 워크에 프로세스를 통합하려는 경우 phing (ant 또는 capistrano를 대체 할 수 있음)과 같은 것을 사용하는 것이 좋습니다.
phing을 사용하면 빌드 프로세스를 지능적인 방식으로 Jenkins에 다시보고 할 수있는 개별 세그먼트로 나눌 수 있습니다.
예를 들어. 내 빌드 프로세스의 일부로 drush를 사용하여 node와 shouldfail의 두 모듈을 활성화한다고 가정 해보십시오. 그런 다음 빌드가 실패합니다. 그러나 JenkinsCI에 다음 쉘 명령을 실행하도록 지시하면 JenkinsCI는 빌드가 통과되었다고 말할 것입니다.
drush --quiet --yes @staging en node shouldfail
분명히 맞지 않습니다. 그러나 대신 개미 또는 phing을 사용하여 동일한 프로세스를 정의하는 경우 Jenkins가 이해하는 일부 실패 논리를 추가하여 정상적으로 실패 할 수도 있습니다. 다음 phing 빌드 스크립트는 이전 명령과 동일한 작업을 시도하지만 예상대로 실패합니다.
<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 개미와 phing은 거의 동일합니다. Phing을 사용하는 PHP 개발자의 장점은보다 편안하게 phing을 확장 할 수 있다는 것입니다.
Drupal 개발과 drush가 정상인 것처럼, 나는 phing을 확장하는 데 너무 많은 가치를 보지 못하고 exec 작업을 실행하면 스마트 빌드 템플릿을 만드는 것으로 충분하다고 생각합니다.
글쎄, 내 질문에 대답하기 위해 나는 phing을 알아낼 시간을 투자하게되었습니다. 실제로는 매우 직관적이며 알아내는 데 너무 오래 걸리지 않습니다.