2013-06-28 33 views
1

我试图使用Capistrano部署一个使用Stasis构建的静态网站。构建网站的代码保存在Git存储库中,我希望将构建产品(即站点的最终产品)保留在存储库之外,以尽量减少代码异味。在Capistrano部署期间使用Stasis在本地预建网站

不幸的是,我无法安装必要的库来在远程服务器上构建站点,因此我需要使用本地copy strategy将它作为Capistrano部署的一部分进行预构建。我无法确定在哪里放置命令以运行stasis,以便Capistrano在从Git检出存储库之后,但在打包并将所有内容推送到远程服务器之前。

我不认为我可以使用Capistrano挂钩,因为构建需要发生在deploy:update_code任务内。我不认为我可以使用Git post-checkout钩子,因为Capistrano每次执行部署时检查到不同的位置,并且Git钩子不会与存储库一起克隆。

配置/ deploy.rb

set :deploy_via, :copy 
set :deploy_to, "/directory/on/remote/server" 

回答

0

可以使用:build_script参数来做到这一点。

set :build_script, "stasis" 

这会在将其传输到目标之前在本地副本上运行。这里的大部分文档在Capistrano Source中都是内联注释。