W jaki sposób drush i jenkins są używane do ciągłej integracji?

30

Często słyszę bzyczące słowa: „ciągła integracja”, „drush” i „jenkins”. W ten sposób wzbudzając moje zainteresowanie.

W jaki sposób drush i jenkins są używane do ciągłej integracji?

Ponadto, dlaczego miałbyś chcieć używać drusha i jenów razem?

chrisjlee
źródło

Odpowiedzi:

20

Do moich projektów używam skryptu kompilacji utworzonego z poleceń Drusha w zadaniu Jenkinsa. Używam mojego projektu Phing Drush Task do uruchamiania Drusha ze skryptu budowania Phing . To pozwala mi wykorzystać istniejące zadania Phing (np. Kopiowanie plików, phplint itp.). Z pomocą Drusha ten skrypt kompilacji

  • Pobiera wszystkie niestandardowe kody (tj. Rdzeń Drupal oraz moduł i motywy do wkładu ) za pomocą Drush Make to./dist
  • Rozwija symbole zastępcze w wersji settings.php(tj. Zastąp ${db_host}rzeczywistą nazwą hosta DB) podczas kopiowania do świeżo pobranego ./dist/sites/defaultfolderu.
  • Skopiuj niestandardowe moduły i motywy do ./dist/sites/all/modules/customi./dist/sites/all/themes/custom
  • Uruchom phplintdla wszystkich plików z moich niestandardowych modułów i motywów.
  • Skopiuj wszystko ./distdo wstępnie skonfigurowanego katalogu głównego.
  • Uruchom drush site-install testingi drush pm-enable simpletestzainstaluj nową witrynę, korzystając z bazy kodu kompilacji i będącej w stanie uruchomić SimpleTest.
  • Uruchom, drush test-runaby uruchomić moje niestandardowe zestawy testów modułów.
  • Uruchom drush coder-review.

Oto skomentowany szablon build.xml do użycia Drusha w Jenkins.

Pierre Buyle
źródło
Czy to oznacza, że ​​twoje środowisko CI jest na tym samym komputerze, co twój serwer php? Nie rozumiem, jak udaje ci się skopiować własne źródła w witrynach / wszystkich / modułach / niestandardowych (na przykład). Jest tak prawdopodobnie dlatego, że nie wiem, jak działa drush ... ale nigdzie nie widzę odpowiednika zadania scp / ftp z CI Plateform do Php one.
Jean-Rémy Revy
1
Tak, serwer CI i serwer WWW obsługujący witrynę testową znajdują się na tym samym komputerze. Oczywiście możesz również skopiować plik z obszaru roboczego CI na host serwera WWW. Można do tego użyć komendy rsync Drusha. Następnie Drush może zostać użyty do uruchomienia polecenia na maszynie obsługującej serwer WWW.
Pierre Buyle,
3

Można użyć Phing w Jenkins, dzięki czemu można używać Drush przez http://drupal.org/project/phingdrushtask (Pierre Buyle na SE.COM)

Przykład niestandardowy:

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