drush和jenkins如何一起使用以实现持续集成?


30

我经常听到流行语:“持续整合”,“匆忙”和“詹金斯”。因此,激发了我的兴趣。

drush和jenkins如何一起使用以实现持续集成?

另外,为什么要同时使用drush和jenkins?

Answers:


20

对于我的项目,我在Jenkins作业中使用由Drush命令组成的构建脚本。我使用Phing Drush Task项目从Phing构建脚本运行Drush 。这使我可以利用现有的Phing任务(例如,文件复制,phplint等)。在Drush的帮助下,此构建脚本

  • 使用Drush Make下载所有非定制代码(即Drupal核心和贡献模块和主题)到./dist
  • 在将占位符复制到新下载的文件夹时,将其扩展为版本settings.php(即${db_host}用实际的数据库主机名替换)./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服务器位于同一台计算机上?我不明白您如何设法在site / all / modules / custom(例如)中复制自己的资源。这可能是因为我不知道工作是如何进行的……但是,从我的CI Plateform到Php,我什么地方都看不到scp / ftp任务。
让·雷米Revy

1
是的CI服务器和服务于测试站点的Web服务器位于同一台计算机上。当然,您也可以将文件从CI工作区复制到Web服务器主机。Drush的rsync命令可用于此目的。然后,可以使用Drush在托管Web服务器的计算机上运行命令。
皮埃尔·布伊

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.