如何在签出Jenkinsfile中的存储库之前清理管道

时间:2020-03-31 19:04:30

标签: jenkins jenkins-pipeline jenkins-plugins jenkins-declarative-pipeline jenkins-git-plugin

我想进行一次clean before checkout操作,如詹金斯git插件documentation中所述:

在结帐前清洁每次结帐前清洁工作区的方式是 删除所有未跟踪的文件和目录,包括那些 在.gitignore中指定。 ...

但是如何将此选项添加到作为第一步的默认结帐步骤?

我认为它应该是git插件扩展的选项,可以按照docs中的描述包含在Jenkinsfile的options块中:

options指令允许配置特定于管道的选项 从管道本身内部。管道提供了许多这些 选项,例如buildDiscarder,但它们也可能由 插件 ...

但是如何知道该插件提供哪些选项及其名称呢?没在文档中找到它,也可能将clean before checkout放在Jenkinsfile的options块中是错误的。

请帮助。

1 个答案:

答案 0 :(得分:2)

正如评论中已经提到的那样,方法是在管道选项中使用skipDefaultCheckout()Source),以便在管道启动时不检出存储库。

skipDefaultCheckout

跳过以下步骤从源代码管理中检出代码 默认为agent指令。

要手动获取存储库,可以使用checkout scmSource

pipeline {
    agent any
    options {
        skipDefaultCheckout()
    }
    stages {
        stage('Example') {
            steps {
                // Cleanup before starting the stage
                // deleteDir() / cleanWs() or your own way of cleaning up

                // Checkout the repository
                checkout scm 

                // do whatever you like
            }
        }
    }
}