detect changes to certain folders in a monorepo
example for a jenkins job
trigger_build="$(./detectGitChanges.sh path/to/folders.watch)"
if [[ "x$trigger_build" == "xfalse" ]]; then
echo "no changes detected... exiting."
exit
fi
example of a pipeline job
stage('example job') {
when {
expression {
return "true" == sh(returnStdout: true, script: './tools/detectGitChanges.sh path/to/folders.watch | tail -n 1').trim()
}
}
steps {
build job: 'job-to-run', wait: true
script {
env.CHANGES = "true"
}
}
}
Gitlab CI pipeline example
deploy_unit_abc:
<<: *setup
stage: deploy
only:
- master
script:
- detectGitChanges.sh folder/folders.watch docker-compose build ${CI_JOB_NAME#*_*_}
artifacts:
expire_in: 1 week