所以我有一个MEAN应用程序启动并运行,我正在寻找一个持续集成解决方案。我成功地让Jenkins运行并运行了一个Web钩子,当合并发生在掌握时,它从一个bitbucket repo中获取我的项目。
现在我没有任何测试,所以Jenkins只运行一些'部署'服务器的shell命令。哪个好。我的目标是让这次运行测试,如果失败就失败。
所以我的问题是构建永远不会完成。我的目标是当它完成时,它将使服务器保持运行或部署并保持运行。 以下是我运行的shell命令,其中一个构建已启动。
npm install
npm install bower
bower install
npm install grunt-cli
grunt prod
node server
它成功运行服务器等但它只是在node server
命令执行后挂起
如何使Jenkins认为这是成功的,然后部署它?我没有太多运气爬上互联网。
修改
所以看一些文档等等。我需要将我的测试配置为在构建运行时运行。如果没有测试,那么它会通过(默认情况下)......所以我需要的是当发生这种情况时,jenkins需要运行一个部署脚本。在浏览jenkins后,我仍然无法弄清楚如何这样做。
编辑#2 因此,将这些shell脚本移出构建允许它完成并且“成功”,因为不存在测试。我看到jenkins将项目保存在工作区目录中。有没有办法让jenkins从那里或某种其他应用程序部署,以在该工作区中部署该构建?
由于
答案 0 :(得分:1)
所以我最终做的事情很简单,但我不确定它是否是最佳实践..
詹金斯对我的bitbucket回购有一个webhook,并监视拉入主人。然后开始我运行的jenkins构建
npm install bower
bower install
npm install grunt-cli
grunt prod
构建项目。然后我安装了nodemon,它监视最后一个“成功构建”文件夹从那里运行服务器。刷新后,服务器将重新启动。到目前为止,这似乎运行得相当顺利。