Bagaimana drush dan jenkins digunakan bersama untuk integrasi berkelanjutan?

30

Saya sering mendengar kata-kata buzz, "integrasi berkelanjutan", "mabuk" dan "jenkins". Dengan demikian, memicu minat saya.

Bagaimana drush dan jenkins digunakan bersama untuk integrasi berkelanjutan?

Juga, mengapa Anda ingin menggunakan drush dan jenkins bersama?

chrisjlee
sumber

Jawaban:

20

Untuk proyek saya, saya menggunakan skrip build yang terbuat dari perintah Drush di pekerjaan Jenkins. Saya menggunakan proyek Phing Drush Task saya untuk menjalankan Drush dari skrip build Phing . Ini memungkinkan saya untuk meningkatkan tugas Phing yang ada (mis. File salin, phplint, dll.). Dengan bantuan Drush, skrip pembuatan ini

  • Unduh semua kode non-kustom (mis. Drupal core dan modul dan tema contribs) dengan Drush Make to./dist
  • Perluas tempat penampung dalam versi settings.php(mis. Ganti ${db_host}dengan nama host DB yang sebenarnya) sambil menyalinnya ke ./dist/sites/defaultfolder yang baru diunduh .
  • Salin modul dan tema khusus ke ./dist/sites/all/modules/customdan./dist/sites/all/themes/custom
  • Jalankan phplintuntuk semua file dari modul dan tema khusus saya.
  • Salin semuanya di bawah ./distke webroot pra-konfigurasi.
  • Jalankan drush site-install testingdan drush pm-enable simpletestuntuk menginstal situs baru menggunakan basis kode build dan mampu menjalankan SimpleTest.
  • Jalankan drush test-rununtuk menjalankan suite tes modul khusus saya.
  • Lari drush coder-review.

Berikut adalah templat build.xml yang dikomentari untuk penggunaan Drush di Jenkins.

Pierre Buyle
sumber
Apakah itu berarti lingkungan CI Anda berada di mesin yang sama dari server php Anda? Saya tidak mengerti bagaimana Anda mengatur untuk menyalin sumber Anda sendiri di situs / semua / modul / custom (misalnya). Ini mungkin karena saya tidak tahu bagaimana cara kerja drush ... tapi tidak ada tempat yang saya samakan dengan tugas scp / ftp dari CI Plateform ke Php one.
Jean-Rémy Revy
1
Ya server CI dan server web yang melayani situs uji berada di mesin yang sama. Tentu saja Anda juga bisa menyalin file dari ruang kerja CI ke host server web. Perintah rsync dari Drush dapat digunakan untuk ini. Kemudian Drush dapat digunakan untuk menjalankan perintah pada mesin hosting server web.
Pierre Buyle
3

Anda dapat menggunakan Phing di Jenkins, sehingga Anda dapat menggunakan Drush melalui http://drupal.org/project/phingdrushtask (Pierre Buyle di SE.COM)

Contoh khusus:

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