継続的な統合のために、drushとjenkinsはどのように一緒に使用されますか?


30

「絶え間ない統合」、「押しつぶし」、「ジェンキンス」といった話題の言葉をよく耳にします。したがって、私の興味を引き起こします。

継続的な統合のために、drushとjenkinsはどのように一緒に使用されますか?

また、なぜdrushとjenkinsを一緒に使用したいのですか?

回答:


20

私のプロジェクトでは、JenkinsジョブでDrushコマンドで作成されたビルドスクリプトを使用します。Phing Drush Taskプロジェクトを使用して、PhingビルドスクリプトからDrushを実行しています。これにより、既存のPhingタスク(ファイルコピー、phplintなど)を活用できます。Drushの助けを借りて、このビルドスクリプト

  • Drush Makeですべての非カスタムコード(つまり、Drupalコアとcontribsモジュールとテーマ)をダウンロードします./dist
  • バージョン管理されたプレースホルダーを展開しsettings.php(つまり${db_host}、実際のDBホスト名に置き換え./dist/sites/defaultます)、新たにダウンロードしたフォルダーにコピーします。
  • カスタムモジュールとテーマをにコピーし./dist/sites/all/modules/custom./dist/sites/all/themes/custom
  • phplintカスタムモジュールとテーマのすべてのファイルに対して実行します。
  • すべて./distを事前に設定されたwebrootにコピーします。
  • を実行drush site-install testingdrush pm-enable simpletestて、ビルドコードベースを使用してSimpleTestを実行できる新しいサイトをインストールします。
  • 実行drush test-runして、カスタムモジュールテストスイートを実行します。
  • を実行しますdrush coder-review

JenkinsでDrushを使用するためのコメント付きbuild.xmlテンプレートを次に示します。


それは、CI環境がPHPサーバーと同じマシン上にあるということですか?sites / all / modules / customに独自のソースをコピーする方法を理解できません(たとえば)。これはおそらく、仕事がどのように駆け抜けるかわからないからでしょう...しかし、CI PlateformからPhp 1へのscp / ftpタスクに相当するものがどこにも見当たりません。
ジャンレミーレヴィ

1
はい。CIサーバーとテストサイトを提供するWebサーバーは同じマシン上にあります。もちろん、CIワークスペースからWebサーバーホストにファイルをコピーすることもできます。これには、Drushのrsyncコマンドを使用できます。次に、Drushを使用して、Webサーバーをホストしているマシンでコマンドを実行できます。
ピエールバイル

3

JenkinsでPhingを使用できるので、http: //drupal.org/project/phingdrushtask(SE.COMのPierre Buyle)からDrushを使用できます。

カスタムの例:

 <drush command='cc' root="${project.drupal.core.dir}" uri="${env.host.name}" assume="yes">
  <param>all</param>
</drush>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.