持续集成

介绍

使用专业的代码管理工具(gitsvn)是一个不错的选择,通过专业的代码管理工具+部署脚本,可以让系统实现持续开发集成,加速迭代。

自动部署PHP脚本参考

专业的 CI 固然好,在早期通过简单的脚本实现持续集成也是个不错的选择。

在服务端通过脚本拉取最新的仓库代码,实现持续集成功能。

  1. <?php
  2. echo "\n\n";
  3. set_time_limit(0);
  4. $type = @$_GET['type'];
  5. if ('schedule' == $type) {
  6. $ret = shell_exec("php ../artisan schedule:run 2>&1");
  7. echo 'OK';
  8. return;
  9. }
  10. $ret = shell_exec("git pull origin master 2>&1");
  11. $lines = explode("\n", $ret);
  12. if (isset($lines[0])) {
  13. unset($lines[0]);
  14. }
  15. echo "=== Deploy Code ===\n" . join("\n", $lines) . "\n";
  16. echo "=== Clear Bootstrap Cache ===\n" . $ret . "\n";
  17. $ret = shell_exec("rm -rfv ../bootstrap/cache/* 2>&1");
  18. echo "=== Clear Storage Cache ===\n" . $ret . "\n";
  19. $ret = shell_exec("rm -rfv ../storage/framework/cache/* 2>&1");
  20. $ret = shell_exec("php ../artisan cache:clear 2>&1");
  21. echo "=== Clear System Cache ===\n" . $ret . "\n";
  22. $ret = shell_exec("php ../artisan view:clear 2>&1");
  23. echo "=== Clear View Cache ===\n" . $ret . "\n";
  24. $ret = shell_exec("php ../artisan migrate 2>&1");
  25. echo "=== Migrate ===\n" . $ret . "\n";
  26. $ret = shell_exec("php ../artisan modstart:module-install-all 2>&1");
  27. echo "=== ModStart ModuleInstallAll ===\n" . $ret . "\n";
  28. $ret = shell_exec("php ../artisan config:cache 2>&1");
  29. echo "=== Optimize Config Cache ===\n" . $ret . "\n";
  30. $ret = shell_exec("php ../artisan optimize 2>&1");
  31. echo "=== Optimize Code ===\n" . $ret . "\n";