Jenkins文件步骤检查目录中的文件是否已更改?

Jenkins文件步骤检查目录中的文件是否已更改?,jenkins,jenkins-plugins,Jenkins,Jenkins Plugins,我不适合在这里,所以如果这很难理解,请原谅我。我试图完成的是检查在我的Jenkinsfile设置中的pull请求期间,某个目录中是否有任何文件发生了更改。如果与develope分支相比,有一些文件发生了更改,我希望运行特定阶段。这是一个声明性管道。让我举个例子: stage('Publish Common Module') { when { // can I check if projects/common/ has any files that are different compa

我不适合在这里,所以如果这很难理解,请原谅我。我试图完成的是检查在我的Jenkinsfile设置中的pull请求期间,某个目录中是否有任何文件发生了更改。如果与
develope
分支相比,有一些文件发生了更改,我希望运行特定阶段。这是一个声明性管道。让我举个例子:

stage('Publish Common Module') {
  when {
   // can I check if projects/common/ has any files that are different compared to develop?
   // if so, then I want to run the steps in this stage
  }
}
我不确定这是否提供了足够的背景资料来说明我正在努力实现的目标。此设置的原因是,有多个阶段根据模块的PR中是否有更改来构建模块

如果这些信息不足以得到准确的答案,我深表歉意。

我看了一下,我认为最好的办法是这样做:

stage('Publish Common Module') {
    script{
        if(0 != sh(script: "git diff --exit-code develop", returnStatus: true)){
            // run your stage
        }
    }
}
当与develop相比有更改时,
exit code
标志会导致git返回0以外的值。返回此退出代码(因为
returnStatus
)并与0进行比较

我不使用声明性管道,所以我不知道当块时是否也可以在
中移动条件。

我看了一下,我认为最好的方法是这样做:

stage('Publish Common Module') {
    script{
        if(0 != sh(script: "git diff --exit-code develop", returnStatus: true)){
            // run your stage
        }
    }
}
当与develop相比有更改时,
exit code
标志会导致git返回0以外的值。返回此退出代码(因为
returnStatus
)并与0进行比较


我不使用声明性管道,所以我不知道当
块时是否也可以在
中移动条件。

使用类似于
git diff的东西--name only develope
Awesome。唯一的问题是我如何有条件地检查这一点,如果有差异,运行我需要运行的命令?您可以使用类似于
git diff--name Only develope
Awesome的东西。唯一的问题是我如何有条件地检查这个,如果有差异,运行我需要运行的命令?很抱歉,我还没有回到这个问题。我在第2行收到一个意外的
错误,我还没有找到。很抱歉,我还没有回到这个问题。我在第2行收到一个意外的
错误,我还没有找到。