我正在尝试为我的团队实施一个非常简单的自动部署系统。
我们的代码存在于SVN仓库中,但我使用heroku来部署我的应用程序(使用GIT)
目前我在本地执行以下操作:
svn update
git add .
git commit -m "foo"
git push heroku master
但是我想自动化这个过程,这样当团队中的任何人提交新代码时,它会自动推送到heroku并可以在我们的开发站点上查看。
这样做的简单方法是什么?也许设置一个EC2实例,在提交(使用钩子脚本)并运行上述命令后进入它?但这个解决方案似乎过于复杂..
答案 0 :(得分:1)
是的,它似乎过于复杂,我只是建议改为最终转向git。
在这种情况下,您只需要关注一个VCS(至少对于此项目而言),您将能够创建其他有用的场景。
IE。将每一个更改推送到Heroku(并将其用作传输层)并不是一个好主意,有时您需要向团队成员推送一些内容以分割正在进行的工作,这很明显,如果您将它发送给这样的状态到Heroku,你会崩溃你的应用程序。因此,拥有一个(其他)共享仓库(origin
)并将所有内容推送到那里会更容易,只有当一些重要部分完成并由所有团队成员确认时,您才可以使用两行代码(或者使用shell脚本)获取最新状态并推送到Heroku。
现在创建共享git存储库只是一件容易的事。如果您有任何具有SSH访问权限的主机帐户,则可以使用gitolite创建它,它易于安装和管理存储库和用户。它完全免费。
答案 1 :(得分:1)
也许你应该看看你的SVN服务器存储库上的SVN post-commit hook:你可以在post-commit
中添加一个名为PATH_TO_REPO/hooks/
的shell脚本,而不是每次提交后都可以运行你的团队。
此脚本应包含要推送到heroku的git命令。