How can I reject git pushes on an origin repo from a local repo if it does not pass unit tests?

StackOverflow https://stackoverflow.com/questions/21154380

  •  28-09-2022
  •  | 
  •  

Question

I have an origin repo that I have full access to and I don't want code to be pushed successfully to this repo unless the code being pushed successfully passes my unit tests. I saw many examples of .git/hooks/update scripts and they seem to break down into a few categories that do not fit my use case.

For example, in (http://git-scm.com/book/en/Customizing-Git-An-Example-Git-Enforced-Policy), the script accesses files locally in the .git/hooks/ directory (ACL example) or individual files in the new or old SHAs.

I need to do an entire build process on all the new files as if I were in the directory of the new commit and were running

.git/hooks/update

#!/usr/bin/bash
mvn test
exit $?
Était-ce utile?

La solution

I would recommend a guarded commit approach, where you are pushing to an intermediate repo, which:

  • triggers the mvn test
  • push, upon successful completion, to your actual intended repo.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top