Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A pre-push git hook which runs a gradle test task
#!/bin/sh
# this hook is in SCM so that it can be shared
# to install it, create a symbolic link in the projects .git/hooks folder
#
# i.e. - from the .git/hooks directory, run
# $ ln -s ../../git-hooks/pre-commit.sh pre-commit
#
# to skip the tests, run with the --no-verify argument
# i.e. - $ 'git commit --no-verify'
# stash any unstaged changes
git stash -q --keep-index
# run the tests with the gradle wrapper
./gradlew test -q
# Another possibility could be to run an aggregate test report task and automatically open the generated html
# store the last exit code in a variable
RESULT=$?
# unstash the unstashed changes
git stash pop -q
# return the './gradlew test' exit code
exit $RESULT
@fwielstra

This comment has been minimized.

Copy link

fwielstra commented Nov 27, 2017

I've found this script on the Google; forked and made a few changes:

  • use a named stash specifically for pre-push, to avoid popping any other stashes that might be there
  • trap exits and properly restore the stash
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.