An issue I have with these git driven deployment process (not your specifically which looks well thought-out) is that your are starting from source each time.
I like my deployment across environments to use the exact same binaries that have been validated. Is it just me that is afraid of introducing issues by not doing that ?