打包和部署mojolicious应用程序的最佳方式

时间:2014-10-08 19:05:39

标签: perl mojolicious

我希望将Mojoliciousperlbrewcarton结合起来,将应用部署到实时环境中。可以访问Jenkins,因此可以将应用程序打包为rpm或者可以通过git pull更新代码库。

真正寻找使流程尽可能简单的部署策略。

有没有人有使用这些工具的经验?

我们正在通过hypnotoad运行mojo,并可能将其置于apiaxle代理之后。

1 个答案:

答案 0 :(得分:6)

我们有一个可以实现自动化的系统;我无法分享代码,但我可以总结一下。

  1. 我们使用git维护我们的项目,并将我们的可部署项目保存在单独的git仓库中(每个jenkins工作一个,例如project-devproject-qa等。)
  2. 我们会在cpanfile中维护我们的依赖项列表,并使用carton install在我们的结帐中保持最新状态。
  3. 创建项目后,每当依赖项发生变化时,我们都会提交cpanfile.snapshot
  4. jenkins作业检查源代码并运行carton install --deployment(实际上它在每个仓库中运行一个脚本,以及该项目的任何其他必要的构建任务)。
  5. 测试等等。
  6. 如果这是第一个jenkins构建,它会将整个树(包括由carton创建的local目录,但不包括.git)复制到新目录git init,创建一个新的提交,并将其推送到部署存储库。
  7. 否则,它会在新目录中检出部署仓库中的最后一次成功构建,rsync构建树的内容(不包括.git)到部署树上,执行{{1} 1}}并提交,并将其推送为新版本。
  8. 在所有情况下,构建都会作为以内部版本号命名的分支推送到部署存储库。然后,部署工具可以向jenkins询问成功构建的列表,并通过让服务器在部署存储库的签出中执行git add --all来部署构建。