groovy Jenkins如何创建管道手动步骤

6tqwzwtp  于 2023-03-01  发布在  Jenkins
关注(0)|答案(2)|浏览(196)

之前Jenkins 2我使用Build Pipeline Plugin构建应用程序并手动将其部署到服务器。旧配置:

这很好用,但是我想使用从groovy脚本(Jenkinsfile)生成的新Jenkins管道来创建手动步骤。
到目前为止,我想出了inputJenkins步骤。
使用的jenkinsfile脚本:

node {
   stage 'Checkout'
   // Get some code from repository

   stage 'Build'
   // Run the build
}

stage 'deployment'
input 'Do you approve deployment?'
node {
    //deploy things
}

但是这需要等待用户输入,注意构建没有完成。我可以给input添加超时,但是这不允许我选择/触发构建并在以后部署它:

如何使用新的jenkins-pipeline获得与之前使用构建管道插件时相同/相似的手动步进/触发结果?

k0pti3hp

k0pti3hp1#

这是Jenkins Pipeline能力的巨大差距IMO。由于Pipeline是单个作业,因此肯定很难提供。一个解决方案可能是将工作空间作为“工件”进行“存档”(tar并将**/* 存档为“workspace.tar.gz”),然后让另一个管道复制工件并将其解压缩到新的工作空间中。这使得第二个管道可以在前一个管道停止的地方继续。当然,没有办法保证第二个管道不能不按顺序执行或多次执行。这太糟糕了。交付管道插件在这里真的很闪耀。您可以直接从视图中执行一个新的管道-而不是第一个作业。无论如何-这不是一个很好的答案-但这是我将要尝试的路径。
编辑:这个插件看起来很有前途:
https://github.com/jenkinsci/external-workspace-manager-plugin/blob/master/doc/PIPELINE_EXAMPLES.md

xtfmy6hx

xtfmy6hx2#

您只需在步骤部分下包含输入。步骤按顺序运行,因此您可以逐个对其进行选通。如果要重新部署enter image description here管道{ agent any

stages {
    stage('Build') {
        steps {
            echo 'Building...'
        }
    }
    stage('Dev environment') {
        steps {
            input 'Do you approve deployment?'
            echo 'Hello Dev'
        }
    }
    stage('Beta environment') {
        steps {
            input 'Do you approve deployment?'
            echo 'Hello beta'
        }
    }
    stage('Production environment') {
        steps {
            input 'Do you approve deployment?'
            echo 'Hello Prod'
        }
    }
}

}
在下面的图像中,构建已经完成,开发部署已经批准,测试部署正在等待。

相关问题