2006年8月30日,星期三

Capistrano 1.1.9 (beta)

jamis 发布

Capistrano 的新版本即将发布!但在我将其公之于众之前,我想找一些勇敢的人来对其进行测试,所以我将以预发布的形式进行一次简短的发布。你可以从 Rails beta gem 服务器获取它。

gem install -s http://gems.rubyonrails.com capistrano

此版本有很多更改,大部分是小更改或外观上的更改。但是,也有一些更改可能会让你感到不便。

最可能影响你的主要更改与 setupupdate_coderollback_codesymlink 任务使用的角色有关。这些任务已更改,现在会部署到所有已定义的服务器。没错,如果你将任何服务器与任何角色关联,这些任务将部署到该服务器。但是,服务器可以通过在其角色定义中设置 :no_release => true 来明确选择退出发布部署。

   role :file, "file-server.somewhere.example",
        :no_release => true

请注意这一点! 如果你使用了非标准角色(除 web、app 或 db 之外的任何角色)的服务器,你需要明确地在它们的角色定义中添加 :no_release => true,否则你的下一次部署也会将目标指向这些服务器。

其他可能让你高兴或不高兴的重要更改

  • -r/--recipe 命令行选项已弃用。你应该改用 -f/--file。
  • Matthew Elder 贡献了一个 Mercurial SCM 的模块(并同意维护)。
  • 如果你的 sudo 位于非标准位置,你可以通过 :sudo 变量指定 sudo 的路径。
  • 添加了 :svn_passphrase,以便你可以使用带密码的密钥。
  • 修复了 CVS 模块中 :local 缺失默认值的问题。
  • Subversion SCM 现在接受 HTTPS 证书。
  • 支持基于 pid 的设置(新的 spawner/reaper)。
  • 添加了 update 任务。
  • 在任务声明中添加了 :except(作为 :only 的反义词)。
  • 通过 HOSTS 环境变量覆盖要用于任务的主机。
  • 通过 ROLES 环境变量覆盖将要用于任务的角色。
  • 在任务声明中添加了 :hosts 选项,用于定义仅在特定机器上工作的任务(而不是按角色)。
  • 不再要求 capfile(这允许你从命令行操作任意主机)。

还进行了其他各种更改 — 你可以查看 CHANGELOG 获取完整列表。