我们在所有分支上都有“stage(build)”。暂时我们如何跳过这个阶段,在多分支管道中的所有分支上运行。我知道一个解决方案是使用when条件阶段,并要求所有开发人员将该分支拉到他们的分支中。但这需要大量的工作和协调。相反,我正在寻找一个全局配置,我们可以简单地跳过任何分支上的名称阶段。
mklgxw1f1#
这听起来像是您将Jenkinsfile与代码放在一起,但希望从管理的Angular 更改Jenkinsfile的运行方式。可以将此阶段存储在单独的(版本控制风格的首选项)资料档案库中。在执行阶段之前,先加载资料档案库,然后加载脚本文件,并在阶段中执行该文件中定义的方法。或者,向构建作业添加一个参数(假设您没有通过Jenkinsfile中的选项设置参数),该参数是一个布尔值,您可以使用或跳过该阶段,并且可以在想要打开或关闭该阶段时修改项目配置
insrf1ej2#
这种方法怎么样?
stage('build') { if(buildFlag=="disable"){ //jump to next stage return; } //do something }
构建标志可以是
您也可以将状态设置为失败,而不是返回:
currentBuild.result = 'FAILURE'
或者引发异常并退出整个作业或管道。
oewdyzsn3#
一个选项是在符合条件时略过阶段主体。例如:
stage('Unit Tests') { steps { script{ if (env.branch.startsWith(releaseBranch)} { echo 'Running unit tests with coverage...' } else { // run actual unit tests } } } }
唯一的缺点是UI将显示此步骤的“绿色框”-即使它实际上什么也没做。如果要完全删除分支的阶段,请使用when指令。
stage('deploy') { when { branch 'production' } steps { echo 'Deploying' } }
额外的好处:你也可以指定一个“when not”指令。
3条答案
按热度按时间mklgxw1f1#
这听起来像是您将Jenkinsfile与代码放在一起,但希望从管理的Angular 更改Jenkinsfile的运行方式。
可以将此阶段存储在单独的(版本控制风格的首选项)资料档案库中。在执行阶段之前,先加载资料档案库,然后加载脚本文件,并在阶段中执行该文件中定义的方法。
或者,向构建作业添加一个参数(假设您没有通过Jenkinsfile中的选项设置参数),该参数是一个布尔值,您可以使用或跳过该阶段,并且可以在想要打开或关闭该阶段时修改项目配置
insrf1ej2#
这种方法怎么样?
构建标志可以是
您也可以将状态设置为失败,而不是返回:
或者引发异常并退出整个作业或管道。
oewdyzsn3#
一个选项是在符合条件时略过阶段主体。例如:
唯一的缺点是UI将显示此步骤的“绿色框”-即使它实际上什么也没做。
如果要完全删除分支的阶段,请使用when指令。
额外的好处:你也可以指定一个“when not”指令。