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

Nic*_*ran 3 perl mojolicious

我期待结合起来Mojolicious,perlbrewcarton以一个应用程序部署到实际环境中.可以访问Jenkins,因此可以将应用程序打包为rpm或者可以通过git pull更新代码库.

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

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

我们通过hypnotoad运行mojo,并可能将它放在apiaxle代理后面.

hob*_*bbs 7

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

  1. 我们维持git的项目,我们在一个单独的混帐回购协议(每詹金斯的工作之一,例如deployables project-dev,project-qa等等).
  2. 我们在a中维护我们的依赖项列表,cpanfile并在我们的签出中使用它们保持最新carton install.
  3. 在创建项目之后,每当依赖项发生变化时,我们都会提交cpanfile.snapshot.
  4. jenkins作业检查源代码并运行carton install --deployment(实际上它在每个repo中运行一个脚本,并执行该项目的任何其他必要的构建任务).
  5. 测试等运行.
  6. 如果这是第一个jenkins构建,它将整个树(包括local由carton创建的目录,但不包括.git)复制到一个新目录,git init它创建一个新的提交,并将其推送到部署仓库.
  7. 否则,它会从新目录中的部署存储库中检出上次成功构建,rsync构建树的内容(不包括.git)到部署树上,执行git add --all并提交,并将其作为新构建推送.

在所有情况下,构建都将作为以构建号命名的分支推送到部署存储库.然后,部署工具可以向jenkins询问成功构建的列表,并通过让服务器git fetch ; git reset --hard origin/$BUILDNUMBER在部署存储库的结帐中执行来部署构建.