如何在Jenkins中的单独Docker容器中运行单元测试?

时间:2018-09-22 15:42:04

标签: docker jenkins python-unittest

在我们的代码库中,我们有多个神经网络(分类,对象检测等),我们为这些神经网络编写了一些单元测试,希望在某个特定点(特定点无关紧要,例如,只要我们将某些功能分支合并到master分支中)。

问题在于,由于外部约束,每个神经网络都需要另一个版本的keras / tensorflow和其他一些程序包,因此我们不能在相同的Jenkins环境中全部运行它们。显而易见的解决方案是Docker容器(每个容器都有专用的Docker映像),理想情况下,我们希望告诉Jenkins在我们预先指定的Docker容器中执行每个单元测试。

有人知道如何与詹金斯一起做吗?我在网上搜索过,但发现的解决方案对我来说似乎有点拙劣。

1 个答案:

答案 0 :(得分:2)

看起来像是詹金斯管道的候选人,especially docker agents

pipeline {
    agent none
    stages {
        stage('Back-end') {
            agent {
                docker { image 'maven:3-alpine' }
            }
            steps {
                sh 'mvn --version'
            }
        }
        stage('Front-end') {
            agent {
                docker { image 'node:7-alpine' }
            }
            steps {
                sh 'node --version'
            }
        }
    }
}

这允许实际的Jenkins代理启动docker容器来完成工作。您说您已经有图像,所以您已完成大部分工作。