Comment sont drush et utilisés jenkins ensemble pour l'intégration continue?
Question
J'entends les mots buzz, "intégration continue", "Drush" et "souvent" jenkins. Ainsi, suscitant mon intérêt.
Comment sont drush et utilisés jenkins ensemble pour l'intégration continue?
En outre, pourquoi voudriez-vous utiliser drush et jenkins ensemble?
La solution
Pour mes projets, j'utiliser un script de compilation en commandes Drush dans un emploi Jenkins. J'utilise mon Phing Drush projet Tâche de courir Drush d'un script de compilation Phing. Cela me permet d'exploiter les tâches phing existantes (par exemple. Copie des fichiers, phplint, etc.). Avec l'aide de Drush, ce script de construction
- Téléchargements tout le code non personnalisé (ie. Noyau Drupal et modules et thèmes contribs) avec Drush Faire
./dist
- placeholders dans un versionnée étend
settings.php
(ie. Remplacer${db_host}
avec le nom d'hôte de DB réelle) lors de la copie dans le dossier de./dist/sites/default
fraîchement téléchargé. - Copie des modules personnalisés et des thèmes à
./dist/sites/all/modules/custom
et./dist/sites/all/themes/custom
- Exécuter
phplint
pour tous les fichiers de mes modules personnalisés et thèmes. - Copier tout sous
./dist
à un Webroot pré-configuré. - Exécuter
drush site-install testing
etdrush pm-enable simpletest
pour installer un site frais à l'aide de la base de code de construction et capable de fonctionner SimpleTest. - Exécuter
drush test-run
pour exécuter mes suites de test du module personnalisé. - Exécuter
drush coder-review
.
Voici un modèle build.xml pour une utilisation dans Drush Jenkins.
Autres conseils
Vous pouvez utiliser Phing Jenkins, de sorte que vous pouvez utiliser Drush par http://drupal.org/project/phingdrushtask (Pierre Buyle sur SE.COM)
Exemple personnalisé:
<drush command='cc' root="${project.drupal.core.dir}" uri="${env.host.name}" assume="yes">
<param>all</param>
</drush>