我想将现有作业迁移到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 构建的结果并将其返回到封闭的管道?