Jenkinsfile - 仅在特定子目录中发生更改时才构建,如何管理后续操作

Jenkinsfile - 仅在特定子目录中发生更改时才构建,如何管理后续操作

基本上,我们在这里进行主干开发,并在同一目录下获得大量服务。

我有一个通过 GitHub webhook 触发的 Jenkins 作业,只有当该 repo 的特定目录发生变化时才会执行某些操作:

pipeline {
        agent any
        stages {
                stage('Building') {
                when { changeset "subdirectory/*"}
                        steps {
                                -- do whatever is configured
                        }
                }
                stage('Deploying to Dev') {
                when { changeset "subdirectory/*"}
                        steps {
                                -- do whatever is configured
                        }
                }
        }
}

这部分工作正常。在我手动触发的另一个 Jenkinsfile 中,我也有这个,用于在 Slack 上发送通知:

        post {
                success {
                        slackSend channel: '#my-notif-channel',
                        color: 'good',
                        message: "Yay ! "
                }
                failure {
                        slackSend channel: '#my-notif-channel',
                        color: 'danger',
                        message: "Nay !"
                }
        }

问题是,无论该目录是否发生更改,都会发送通知。有没有办法仅在我的子目录中发生更改时启用该块?

相关内容