Node.js 想要Jenkins管道脚本创建docker容器和测试数据库,测试它,销毁容器吗
我已经为应用程序(a)创建了一个git repo,它包含一个Dockerfile和docker-compose.yml,用于建立postgres数据库并创建和填充一些表。在开发过程中,我将其作为一个支持应用程序,作为一次性数据库进行测试 我想在Jenkins管道中使用这个docker应用程序来测试我的主应用程序(B),这是一个读取和写入数据库的NodeJS应用程序。应用程序B也在git中,我想使用Jenkins管道来运行它的测试(用Mocha编写)。因此,我的总体管道逻辑如下所示: 触发事件: 应用程序B的代码被推送到git的某个分支(特性或主程序) 管道: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编写)。因此,我的总体管道逻辑如下所示: 触发事件:
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命令