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

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

我一直在尝试有一个参数集,如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将是更清晰的决策:

流水线

  1. @Library('myAwesomeLib')
  2. #declare agent on pipeline level or use node('label') in post steps
  3. pipeline{
  4. agent{label 'my-agent}
  5. parameters { --- your params ---}
  6. stages{
  7. stage{
  8. steps{
  9. ---do your staff---
  10. }
  11. }
  12. }
  13. post{
  14. always{
  15. myCustomCleanup(params.choice_name)
  16. }
  17. }
  18. }

字符串

图书馆

  1. #vars/myCustomCleanup.groovy
  2. def call(string myChoice){
  3. switch(myChoice){
  4. case('Always'):
  5. #sh "rm -rf ${env.WORKSPACE}" - not good
  6. cleanWs() # good
  7. case('OnFail'):
  8. if(currentBuild.result == 'FAILURE'){
  9. cleanWs()
  10. }
  11. .... any other logic for cleanup....
  12. }
  13. }


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

展开查看全部

相关问题