Git хук для запуска тестов

Картинка из интернетов<br />
Картинка из интернетов

Есть у меня такой pre-push хук – автоматом прогоняет тесты локально, через maven. Подключается по необходимости через отдельные git конфиги для проектов.

#!/bin/env bash set -eu # https://gist.github.com/arnobroekhof/9454645 # save the file as <git_directory>/.git/hooks/pre-<commit|push> and chmod +x # modified: dimio, 2022-09-21 echo "Running mvn clean test for errors" # retrieving current working directory CWD=$(pwd) # find dir with parent pom.xml (a top-level depth) - run tests for all modules PROJ_DIR="$(git rev-parse --show-toplevel)$(dirname $(find -type f -name 'pom.xml' -printf '%d %p\n' | sort | tr -d '[:digit:]') | tr -d . | head -n 1)" cd "${PROJ_DIR}" MVN_RESULT=$(mvn clean test 2>&1) if [ $? -ne 0 ]; then echo echo "${MVN_RESULT}" | ((tee /dev/fd/5 | grep -A 10 -B 2 "Summary:" > /dev/fd/4) 5>&1 | sed -n -e '/^Failed tests:/,/Tests run:.*$/ p' ) 4>&1 echo echo "Error while testing the code" cd "${CWD}" exit 1 fi cd "${CWD}"

Стащил его, судя по всему, отсюда: https://gist.github.com/arnobroekhof/9454645. Потом допиливал немного – чтобы он с многомодульными проектами работал корректно. Может, ещё что-то по мелочи причёсывал.

И он отлично работает (разве что можно через sed попробовать результаты по всем модулям агрегировать).

Но вот проблема – на текущем проекте везде gradle, а под него я что-то не могу найти похожего простого решения 🙁

Есть ли оно?

Начать дискуссию