我正在尝试使用Capistrano部署使用Stasis构建的静态网站。构建站点的代码保存在Git存储库中,我希望将构建产品(即站点的最终产品)保留在存储库中,以最大限度地减少代码异味。
不幸的是,我无权安装必要的库来在远程服务器上构建站点,因此我需要使用本地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 :(得分:0)
您可以使用:build_script
参数执行此操作。
set :build_script, "stasis"
在将其传输到目标之前,它将在本地副本上运行。大多数文档都在Capistrano Source中作为内联注释。