使用Multibranch Workflow清理构建

Chr*_*nes 13 jenkins jenkins-workflow

使用Multibranch Workflow,签出的命令看起来像

checkout scm
Run Code Online (Sandbox Code Playgroud)

我找不到告诉詹金斯执行干净结账的方法.通过"干净",我的意思是它应该删除工作区中不受版本控制的所有文件.

Bra*_*ght 13

我不确定这是否回答了原始问题(我无法判断是否有意在工作区中留下一些文件),但为什么不首先删除工作区,这样可以进行干净的检查:

stage ('Clean') {
    deleteDir()
}

stage ('Checkout') {
    checkout scm 
}
Run Code Online (Sandbox Code Playgroud)


hEn*_*ngi 6

我遇到了同样的问题,这是我的解决方法。我为签出创建了一个新的scm对象,并使用CleanBeforeCheckout扩展了扩展。但是我保留了其他配置,例如分支和userRemoteConfigs。

checkout([
    $class: 'GitSCM',
    branches: scm.branches,
    extensions: scm.extensions + [[$class: 'CleanBeforeCheckout']],
    userRemoteConfigs: scm.userRemoteConfigs
])
Run Code Online (Sandbox Code Playgroud)

它仍然不是完美的,因为您必须创建一个新对象:(

  • 这应该是正确的答案。当您只想进行git clean时,删除完整目录并不总是合适的。 (2认同)
  • 不幸的是,脚本需要获得批准才能访问“SCM”参数。 (2认同)