希望Jenkins管道脚本使用测试数据库创建docker容器,对其进行测试,销毁容器

时间:2019-08-26 07:57:10

标签: node.js git postgresql jenkins-pipeline

我为应用程序(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

我正在尝试找出构建此结构的最佳方法。我实际上是从 two 仓库中签出代码:一个我要测试和构建的仓库,另一个仓库包含一个用于测试的“支持”应用程序,实质上是在模拟我的真实数据库。

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

0 个答案:

没有答案
相关问题