基本的に、ここではトランク開発を行っており、同じディレクトリの下に大量のサービスがあります。
GitHub Webhook を通じてトリガーされる Jenkins ジョブがあり、そのリポジトリの特定のディレクトリに変更があった場合にのみいくつかのアクションを実行します。
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 !"
}
}
これに関する問題は、そのディレクトリに変更があったかどうかに関係なく、通知が送信されることです。サブディレクトリに変更があった場合にのみそのブロックを有効にする方法はありますか?