TeamCity + Node.JS 持续部署

TeamCity + Node.JS Continuous Deployment

我们目前正在尝试为我们正在开发的几个 NodeJS 项目(主要基于 Sails.JS 框架)设置 CI/CD 管道。

我已经成功设置了 TeamCity 和一个构建代理并创建了一个简单的构建配置,基本上只是执行 npm 安装,下一步我们要采取的是设置持续交付成功的构建到我们的开发(并最终产品)服务器。

然而,关于使用 TeamCity 进行持续交付的在线信息似乎很少,而且我发现的大部分内容都与使用 MSDeploy 的 .NET 项目和 IIS 相关,(据我所知)不会对我们真的没用。

我正在考虑编写一组自定义脚本,将构建文件复制到开发服务器、重新启动服务等,但我不确定构建应该如何与这些脚本交互(对于例如,如何获取项目已构建的路径?)。

有没有人有过设置 TeamCity 来部署 NodeJS 代码(或任何其他非 .NET 代码)的经验,可以为我指明正确的方向?

谢谢, 旦

我不认为 TeamCity 旨在用于连续 delivery/deployment。您是否考虑过使用 Thoughtworks GO!?我们将它用于 40 多个产品部署并且非常喜欢它。其目的是:

Automate and streamline the build-test-release cycle for worry-free, continuous delivery of your product.

它有许多插件,可能会满足您的需要并使您更容易过渡到 CD。最重要的是它是免费的!

我不熟悉 ThoughtWorks GO,但我通过使用 TeamCity Deployer 插件设法实现了我需要的功能。 对于 Linux 它相当简单(构建,然后 SCP 文件到服务器上的暂存文件夹,然后 运行 远程脚本合并任何需要合并的内容并重新启动任何所需的服务),但我仍在开发 Windows 版本。

如您所见,使用一些脚本,您可以使用常见任务类型或自定义脚本轻松部署到 Windows 或 Linux。

经常与 TeamCity 一起使用的常见部署软件是 Octopus Deploy。正如您提到的,很多文档都非常关注 .NET,但是版本 3 和更高版本中的 Octopus Deploy 可以部署到 Windows 和 Linux 主机,如果您需要自定义,还可以管理部署时间变量不同环境的值。