我是卡皮斯特拉诺的新手,并且开始时有点挣扎。我需要做的简要说明:
git pull
来自我们的git repo的最新代码,位于中央构建服务器上。此构建服务器的环境与部署环境完全匹配。我需要在这里构建代码。例如,我不想部署在Mac笔记本电脑上构建的二进制文件。所以原则上看起来相当简单,但卡皮斯特拉诺似乎有些自以为是,有点神奇。结果我不知道如何完成所有这些。它似乎想要检查我的代码并将其复制到远程机器,例如,不首先构建它。
我想我需要忽略所有Capistrano的默认智能,并让它在适当的服务器上运行一些shell命令。在伪代码中:
ssh buildmachine via gateway "cd repo && git pull && make"
ssh targetmachine(s) via gateway "scp buildmachine:repo/binary .; <mv && symlink>; service foo restart"
我甚至使用合适的工具来完成工作吗?它似乎很像方孔中的圆钉。
有人可以向我解释Capistrano配置文件的内容应该是什么,以及为实现此目的而运行的cap
命令是什么?
顺便说一下,我一直在四处寻找并查看deploying with capistrano with remote git repo but without git running on production server和From manual pull on server to Capistrano等问题
答案 0 :(得分:1)
这个问题相当陈旧,但你永远都不知道有人在需要信息时会采取行动......
首先和formost,考虑到Capistrano可能不适合你想做的工作。
那就是说,实现你的期望并非不可能。在部署大量文件并修改它们的项目中(比如css / js minify,js build等)我会避免它,在你的情况下,你可以考虑运行一个“部署存储库”并在capistrano中配置它作为源代码。您的流程如下所示:
作为副作用,您最终会获得已部署二进制文件的完整历史记录