The total build time and test time will only grow over time. As long as we come up with a good directory-dependency tree, a script can check if any files in the pull request modified any of those dependencies; if yes, the test continues, if not, it is skipped. Bash 1 2 3 4 5 6 7 8 9 10 11 # Usage: ci_check_if_test_should_run_v2.sh <comma separate list of paths to check> DIRS_TO_CHECK = ${ 1 } CHANGED = $( node -r ts-node/register ../../scripts/check_if_test_should_run_v2.ts --dirs ${ DIRS_TO_CHECK } ) cd - if [ $CHANGED = false ] ; then echo "No changes in ${ 1 } - skipping testing" # https://discuss.circleci.com/t/ability-to-return-successfully-from-a-job-before-completing-all-the-next-steps/12969/6 circleci step halt exit 0 fi echo "Something $CHANGED , tests should not be skipped"