持续集成/部署 - 基于2 Git存储库的MEAN Stack项目

时间:2015-07-18 05:12:43

标签: angularjs git continuous-integration travis-ci mean-stack

我正在使用MEAN Stack开始一个新项目。前端和后端位于2个不同的git存储库中,托管在bitBucket上。每个项目/回购都有自己的unit / e2e测试。后端是Restful JSON API,前端是AngularJS SPA。前端项目中提供了一个grunt任务,用于输出客户端代码的优化/缩小版本。

我的想法是首先在客户端代码上运行unit / e2e测试,然后是" grunt deploy"任务,然后以某种方式自动将此grunt任务的结果提交到后端项目/ git repo,运行后端代码的单元测试,最后在Amazon上部署后端项目。

我不太确定如何在Travis或Codeship这样的平台上设置这种项目,因为它使用的是2 GIT repo而不是一个......

如果有人对此类设置有任何经验/建议,那将非常感激。

干杯,

尼科

1 个答案:

答案 0 :(得分:0)

尽可能避免使用手工制作的解决方案,例如在存储库中复制/提交文件 - 这只会导致痛苦和维护噩梦。使用标准工具。

处理这些依赖关系的标准方法是使用依赖关系管理工具。在后端,您通常使用您可能已经熟悉的npm来执行此操作 - 您可能正在使用它来提取像Grunt这样的构建工具。

构建前端应用程序时,通常使用Bower

使用Bower,您可以定义bower.json文件并在那里列出您的依赖项。在您的情况下,您需要在两个项目中都有bower.json文件:

  • 在您的前端项目中,bower.json文件定义了包的名称,版本,最重要的文件等。
  • 在您的后端项目中,bower.json文件定义了依赖项,即您的前端项目。

在定义前端项目的依赖关系时,您可以将其指向Bower注册表中的公开包(例如Angular),或指向Git仓库(这可能是您正在寻找的内容) )。您可以将其指向Git标记(例如#1.2.3),或指向Git分支(例如#master)。如果您不想,您不需要在公共Bower注册表中注册您的包裹。

您需要在后端项目中添加bower install作为额外的构建步骤,最好在运行npm install之后。

再次尝试避免变通方法,尝试坚持使用标准工具。将您的工作分成两个独立的Git回购非常好,这对于保持项目规模可管理是一个很好的做法 - 您只需要使用正确的工具来完成工作。

以下是Bower入门的一些教程链接: