Gitlab CI Building only changed maven modules Only rebuild maven modules that were changed script: # generating list of modules to build - git diff --name-only origin/master~$(git rev-list origin/master --not HEAD --count) | grep -E '(module1|module2|module3)/[a-zA-Z0-9-]+' | sed -E 's/^[a-zA-Z0-9-]+\/([a-zA-Z0-9-]+)\/([a-zA-Z0-9-]+)\/.+$/\1-\2/g' | sort --unique > changed.modules || true # marking modules as changed - echo "my-backend" >> changed.modules - echo $(lastSuccessfulCommit) - npm ci - mvn -B -T 1C $(shouldSkipNPM) -Ppartial -Dpartial.referenceBranch=$(lastSuccessfulCommit) -Dpartial.ignoreAllReactorProjects=true -am org.jacoco:jacoco-maven-plugin:prepare-agent install docker:build jib:build docker:push jacoco:report -Ddocker.tag=${CI_COMMIT_REF_SLUG}-SNAPSHOT