Jenkins:有没有一种方法可以根据用户选择的参数来执行后期清理

d7v8vwbk  于 2023-08-03  发布在  Jenkins
关注(0)|答案(1)|浏览(104)

我一直在尝试有一个参数集,如parameters { choice(name:“CLEANUP”,选项:['ALWAYS','ON FAIL','NEVER'],说明:{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}
有没有一种方法可以用deletedir()在post stage中执行清理?
我尝试了一些事情,比如在帖子中使用不允许的when表达式。我也试过这个:
第一个月

iklwldmw

iklwldmw1#

Library vars将是更清晰的决策:

流水线

@Library('myAwesomeLib')
#declare agent on pipeline level or use node('label') in post steps

pipeline{
  agent{label 'my-agent}
  parameters { --- your params ---}
  stages{
    stage{
      steps{
        ---do your staff---
      }
    }
  }
  post{ 
    always{
       myCustomCleanup(params.choice_name)
    }
  }  
}

字符串

图书馆

#vars/myCustomCleanup.groovy

def call(string myChoice){
   switch(myChoice){
      case('Always'):
         #sh "rm -rf ${env.WORKSPACE}" - not good
         cleanWs() # good 
      case('OnFail'):
         if(currentBuild.result == 'FAILURE'){
            cleanWs()
         }
    .... any other logic for cleanup....
   }
}


但是,这对gitOps来说不是一个好的策略-你可能会用 publish stepsarchiveArtifact 步骤来保存所有重要的员工,而忘记旧的工作区。另外,如果您没有使用 customWorkspace 选项覆盖工作区,则工作区将在下一次构建中重用。

相关问题