Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 想要Jenkins管道脚本创建docker容器和测试数据库,测试它,销毁容器吗_Node.js_Git_Postgresql_Jenkins Pipeline - Fatal编程技术网

Node.js 想要Jenkins管道脚本创建docker容器和测试数据库,测试它,销毁容器吗

Node.js 想要Jenkins管道脚本创建docker容器和测试数据库,测试它,销毁容器吗,node.js,git,postgresql,jenkins-pipeline,Node.js,Git,Postgresql,Jenkins Pipeline,我已经为应用程序(a)创建了一个git repo,它包含一个Dockerfile和docker-compose.yml,用于建立postgres数据库并创建和填充一些表。在开发过程中,我将其作为一个支持应用程序,作为一次性数据库进行测试 我想在Jenkins管道中使用这个docker应用程序来测试我的主应用程序(B),这是一个读取和写入数据库的NodeJS应用程序。应用程序B也在git中,我想使用Jenkins管道来运行它的测试(用Mocha编写)。因此,我的总体管道逻辑如下所示: 触发事件:

我已经为应用程序(a)创建了一个git repo,它包含一个Dockerfile和docker-compose.yml,用于建立postgres数据库并创建和填充一些表。在开发过程中,我将其作为一个支持应用程序,作为一次性数据库进行测试

我想在Jenkins管道中使用这个docker应用程序来测试我的主应用程序(B),这是一个读取和写入数据库的NodeJS应用程序。应用程序B也在git中,我想使用Jenkins管道来运行它的测试(用Mocha编写)。因此,我的总体管道逻辑如下所示:

触发事件: 应用程序B的代码被推送到git的某个分支(特性或主程序)

管道:

git checkout code for Application B (implicit)
git checkout code for Application A (explicitly)
cd to Application A directory:
docker-compose up -d  // start postgres container 
cd's to Application B directory: 
npm install 
npm run test (kicks off my Mocha tests that expect postgres db with localhost:5432 url)
cd to Application A directory 
docker-compose down  // destroy postgres container
// if tests pass, deploy application B
我想找出最好的方法来组织这个。我实际上是在检查两个repo中的代码:一个是我想要测试和构建的repo,另一个是包含“支持”测试应用程序的repo,本质上是模拟我的真实数据库

我会使用脚本还是声明性管道? 管道在应用程序B的工作区目录中运行,该目录在触发管道时隐式签出。我是否只是签出此工作区中应用程序A的代码并在其上运行docker命令