Jenkinsfile - Nur erstellen, wenn sich in einem bestimmten Unterverzeichnis etwas ändert, wie verwaltet man Post-Aktionen?

Jenkinsfile - Nur erstellen, wenn sich in einem bestimmten Unterverzeichnis etwas ändert, wie verwaltet man Post-Aktionen?

Im Grunde führen wir hier Trunk-Entwicklung durch und haben jede Menge Dienste im selben Verzeichnis.

Ich habe einen Jenkins-Job, der über einen GitHub-Webhook ausgelöst wird und der einige Aktionen nur dann ausführt, wenn es in einem bestimmten Verzeichnis dieses Repositorys eine Änderung gibt:

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
                        }
                }
        }
}

Dieser Teil funktioniert einwandfrei. In meiner anderen Jenkins-Datei, die wir manuell auslösen, habe ich auch Folgendes, um eine Benachrichtigung über Slack zu senden:

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

Das Problem dabei ist, dass die Benachrichtigung gesendet wird, unabhängig davon, ob in diesem Verzeichnis eine Änderung vorgenommen wurde oder nicht. Gibt es eine Möglichkeit, diesen Block nur zu aktivieren, wenn in meinem Unterverzeichnis eine Änderung vorgenommen wurde?

verwandte Informationen