詹金斯与自定义脚本

时间:2013-01-10 20:37:04

标签: svn deployment jenkins

我目前面临着如何部署PHP应用程序的困境。

以下是我的设置:

  • 我还拥有SVN存储库的测试服务器。我有一个post-commit脚本,它导出trunk以在每次提交时自动将副本部署到测试服务器。
  • 第二台生产服务器。

我正在谈论的部署显然是从第一台服务器到第二台服务器。

我目前正在使用我编写的脚本,看起来非常像这样:

#!/bin/bash

echo "Removing Old Export."
rm -rf /tmp/app_export

echo "SVN Export."
svn export -q -r HEAD "file:///var/www/svn/app/trunk" /tmp/app_export

echo "Changing permissions"
chown -R apache.apache /tmp/app_export

echo "*** Rsynching to app.com."
rsync -zai --progress --stats --ignore-times --checksum /tmp/app_export/ user@app.com:/var/www/html/app/ --exclude '*.log'

但是每个人都说我应该使用Jenkins(或类似的东西)来部署我的应用程序。这是什么优点?

提前致谢。

1 个答案:

答案 0 :(得分:3)

Jenkins旨在支持构建,但实际上它是一个通用的自动化框架

使用Jenkins的优点:

  • 可以调用您现在用来部署应用程序的相同脚本
  • 可以将Jenkins作业设置为在有人进行源代码存储库提交时自动触发
  • 部署的凭据可以限制在Jenkins中。这样就可以自动触发部署,也可以设置用户授权规则来控制允许运行部署的人员
  • Jenkins充当中央仪表板,在部署时进行记录。
  • 可以添加一些在Jenkins中作为“post build”操作运行的功能测试。
  • ..
  • ..