Npm 运行vue dev server gitlab ci和微服务体系结构
我的目标是在gitlab上建立CI。我的项目由5个不同的服务组成,细节不重要。我编写了一些测试,目前我通过运行一个终端Npm 运行vue dev server gitlab ci和微服务体系结构,npm,jestjs,gitlab-ci,end-to-end,Npm,Jestjs,Gitlab Ci,End To End,我的目标是在gitlab上建立CI。我的项目由5个不同的服务组成,细节不重要。我编写了一些测试,目前我通过运行一个终端npm-run-dev在本地运行,在第二个终端npm-run-test中,所有whist在其他终端中,其余4个服务使用npm-run-dev/npm-start以类似方式运行。我使用的是gitlab runner ssh executor(尽管我愿意尝试其他版本),我希望能够在依赖项目运行的情况下部署开发服务器并在管道中运行jest测试。在从单个服务启动的测试完成之后,我希望其他
npm-run-dev
在本地运行,在第二个终端npm-run-test
中,所有whist在其他终端中,其余4个服务使用npm-run-dev
/npm-start
以类似方式运行。我使用的是gitlab runner ssh executor(尽管我愿意尝试其他版本),我希望能够在依赖项目运行的情况下部署开发服务器并在管道中运行jest测试。在从单个服务启动的测试完成之后,我希望其他依赖的服务能够正常地关闭
我曾考虑过将发布npm run dev
作为后台进程nohup
,并使用nc
等待端口上的响应,比如while!nc-w1-zlocalhost 3000;睡眠0.1;完成
但是我认为这不是最佳实践,也不是在测试运行后终止初始npm run dev
进程的问题。我还将使用相同的技术来启动其他依赖服务。
另一个想法是使用Jest
beforeAll()
来设置开发服务器,然后afterAll()
来拆除它(以及依赖的服务),是否有一种方法可以通过编程方式部署nuxt开发服务器和express服务器
问题是,;如何最好地实现这一点?根据我建议的方法或我还没有遇到的方法。
使用gitlabs管道触发器部署其他依赖的服务会很好,但我的问题是——如果我使用第一种方法在后台运行dev服务器,那么在上游管道的测试完成之前,我如何保持这些服务器的运行
一些额外的位:
在my package.json中:
。。。
“脚本”:{
“开发”:“nuxt”,
“测试”:“开玩笑”
}
.gitlab ci.yml
的示例-这当然挂在npm run dev
上
deployNuxt:
阶段:建造
标签:
-试验
在脚本之前:
-导出路径=$PATH:/home/[user]/.nvm/versions/node/v13.12.0/bin
脚本:
-npm安装
-npm运行开发
-npm运行测试
如果我使用管道API,它看起来会像:
阶段:
-触发交叉项目
-建造
deployAuth:
阶段:触发交叉项目
标签:
-试验
脚本:
-“curl-X POST-F令牌=[token]-F ref=[ref_name][管道api端点]”
deployNuxt:
阶段:建造
标签:
-试验
在脚本之前:
-导出路径=$PATH:/home/[user]/.nvm/versions/node/v13.12.0/bin
脚本:
-npm安装
-npm运行开发
-npm运行测试
体系结构(独立的git项目):
服务1-nuxt(前端)
Architecture (separate git projects):
service 1 - nuxt (frontend) <---- this is where the tests are run
service 2 - express server (backend)
service 3 - authentication
service 4 - gateway