diff --git a/apps/connector/Jenkinsfile b/apps/connector/Jenkinsfile index 5baed3a2..1a774773 100644 --- a/apps/connector/Jenkinsfile +++ b/apps/connector/Jenkinsfile @@ -1,6 +1,8 @@ #!/usr/bin/env groovy library 'status-jenkins-lib@v1.9.11' +def changesDetected = false + pipeline { agent { label 'linux' } @@ -27,7 +29,41 @@ pipeline { } stages { + stage('Initial changelog checkout') { + when { + expression { currentBuild.previousCompletedBuild == null } + } + steps { + script { + checkout scmGit( + branches: scm.branches, + extensions: [ + cloneOption(depth: 100, noTags: true, reference: '', shallow: true), + changelogToBranch(changelogBase( + compareRemote: 'origin', + compareTarget: CHANGE_TARGET + )) + ], + userRemoteConfigs: scm.userRemoteConfigs + ) + } + } + } + + stage('Check changes') { + when { + changeset pattern: "apps/connector/**", comparator: "GLOB" + } + steps { + script { + changesDetected = true + } + } + } stage('Install') { + when { + expression { changesDetected } + } steps { dir("${env.WORKSPACE}/apps/connector") { script { @@ -42,6 +78,9 @@ pipeline { } stage('Build') { + when { + expression { changesDetected } + } steps { dir("${env.WORKSPACE}/apps/connector") { script { @@ -56,6 +95,9 @@ pipeline { } stage('Zip') { + when { + expression { changesDetected } + } steps { dir("${env.WORKSPACE}/apps/connector") { zip( @@ -68,6 +110,9 @@ pipeline { } stage('Archive') { + when { + expression { changesDetected } + } steps { dir("${env.WORKSPACE}/apps/connector") { archiveArtifacts( @@ -79,6 +124,9 @@ pipeline { } stage('Upload') { + when { + expression { changesDetected } + } steps { dir("${env.WORKSPACE}/apps/connector") { script { @@ -90,8 +138,20 @@ pipeline { } post { - success { script { github.notifyPR(true) } } - failure { script { github.notifyPR(false) } } + success { + script { + if(changesDetected) { + github.notifyPR(true) + } + } + } + failure { + script { + if(changesDetected) { + github.notifyPR(false) + } + } + } cleanup { cleanWs() } } }