web-dev-qa-db-ja.com

Drushとjenkinsを継続的に統合するために一緒に使用するにはどうすればよいですか?

「継続的インテグレーション」「ドラッシ」「ジェンキンス」という噂がよく耳にします。したがって、私の興味を掻き立てます。

Drushとjenkinsを継続的に統合するために一緒に使用するにはどうすればよいですか?

また、drushとjenkinsを一緒に使用する理由は何ですか?

30
chrisjlee

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

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

以下は、JenkinsでのDrushの使用に関するコメント付きの build.xmlテンプレート です。

21
Pierre Buyle

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

カスタムの例:

 <drush command='cc' root="${project.drupal.core.dir}" uri="${env.Host.name}" assume="yes">
  <param>all</param>
</drush>
3
Pol Dellaiera