如何使该管道同时运行多次?

时间:2019-04-08 08:42:45

标签: jenkins docker-compose jenkins-pipeline

当前,它创建一个网络名称“ denpal_default”,并给出以下消息:

[1BRemoving network denpal_default
Network denpal_default not found.
Network test-network is external, skipping

我尚未对其进行测试,但是我认为,如果它构成了denpal_default网络并删除了它,则它无法同时运行多个版本。

我正在考虑一种解决方案,该解决方案将创建一个随机的COMPOSE_PROJECT_NAME =“ denpal-randomnumber”并以此为基础进行构建。

但是稍后如何在“验证”阶段的“ Docker构建”阶段使用变量集?

stage('Docker Build') {
  steps {
    sh '''
    docker-compose config -q
    docker network prune -f && docker network inspect test-network >/dev/null || docker network create test-network
    COMPOSE_PROJECT_NAME=denpal docker-compose down
    COMPOSE_PROJECT_NAME=denpal docker-compose up -d --build "$@"
    '''
  }
}
stage('Verification') {
  steps {
    sh '''
    docker-compose exec -T cli curl http://nginx:8080 -v
    COMPOSE_PROJECT_NAME=denpal docker-compose down
    '''
  }
}

1 个答案:

答案 0 :(得分:0)

您可以在管道的sh命令中使用变量,因为它基本上是一个字符串,并利用groovy gstring(http://groovy-lang.org/syntax.html

脚本管道示例,用于声明式使用环境变量

def random = UUID.randomUUID().toString()
sh '''
   echo "hello ${random}"
'''

两个常见的陷阱,必须使用双引号(gstring,单引号是常规string),并且“ stage”是作用域的,因此将您定义为全局或同一阶段的var。