在管道中的两个Jenkins作业之间传递信息

时间:2016-09-06 13:48:45

标签: parameter-passing jenkins-pipeline

我想将现有作业迁移到Jenkins Pipeline,此过程我尝试迁移附加到此作业的不同插件以使用新语法。

但是,并非所有插件都提供相应的包装语法。

在当前的情况下,我想分配三个独立的端口(嵌入式数据库,容器和流程引擎),以便构建可以独立于同一台机器上的其他构建运行。在经典的Jenkins工作中,我们可以使用Port Allocator Plugin,但不是(yet)可以通过Pipeline Syntax获得。

我的想法是触发一个使用端口分配器插件的经典构建,并返回我可以在以后的构建中使用的空闲端口,以启动所需的服务。

node {
    stage("Allocate Ports") {
        build job: "allocate-port", parameters: [ // <- the classic build
            string(name: "name1", value: "PORT_DB"),
            string(name: "name2", value: "PORT_CONTAINER"),
            string(name: "name3", value: "PORT_ENGINE")
        ]
    }
    stage("Integration Tests") {
        sh """
           run-test \
            -db=${PORT_DB} \
            -container=${PORT_CONTAINER} \
            -engine=${PORT_ENGINE}
        """
    }
}

是否有一种很好的方法来存储 allocate-port 构建的结果并将其返回到封闭的管道?

0 个答案:

没有答案