Skip to content

Instantly share code, notes, and snippets.

@Mte90
Last active October 2, 2020 10:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mte90/f2786da09ed7a5dd5245376730e0a46a to your computer and use it in GitHub Desktop.
Save Mte90/f2786da09ed7a5dd5245376730e0a46a to your computer and use it in GitHub Desktop.
pre-push

I use this git hook to upload on a folder on our Dev VPS the status of the branch of a specific plugin, so we have an history.
It execute QualityAnalyzer, PHPMetrics and Codeception to generate the relative reports.

#!/bin/sh
# If the branch is not master, execute phpmetrics and upoload everything on the VPS
current_branch=$(git symbolic-ref HEAD | sed -e 's,.*/\(.*\),\1,')
if [ $current_branch != "master" ]; then
sshpass -p your-password ssh user@domain.tld mkdir -p /var/www/your-path/status/master/
sshpass -p your-password rsync --progress -avzP /home/your-user/.cache/QualityAnalyzer/assets -e ssh user@domain.tld:/var/www/your-metrics/status/$current_branch/ > /dev/null
sshpass -p your-password rsync --progress -avzP /home/your-user/.cache/QualityAnalyzer/index.html -e ssh user@domain.tld:/var/www/your-metrics/status/$current_branch/ > /dev/null
/usr/bin/phpmd /var/www/VVV/www/site/public_html/wp-content/plugins/your-plugin/ xml /CodeatCS/codeat-phpmd.xml --exclude vendor,tests --reportfile /tmp/phpmd-analysis.xml
/home/your-user/.cache/QualityAnalyzer/bin/analyze analyze /var/www/VVV/www/site/public_html/wp-content/plugins/your-plugin/ --exclude=vendor,tests --exclude_analyzers=cpd,pdepend,checkstyle --phpmd=/tmp/phpmd-analysis.xml
sshpass -p your-password rsync --exclude={.git*} --progress -avzP /home/your-user/.cache/QualityAnalyzer/data -e ssh user@domain.tld:/var/www/your-metrics//status/$current_branch/ > /dev/null
codecept run wpunit --coverage --coverage-html > /dev/null
sshpass -p your-password rsync --exclude={.git*} --progress -avzP /var/www/VVV/www/site/public_html/wp-content/plugins/your-plugin/tests/_output/coverage/ -e ssh user@domain.tld:/var/www/your-metrics/coverage > /dev/null
phpmetrics --report-html="/tmp/your-report" /var/www/VVV/www/your-project/public_html/wp-content/plugins/your-plugin/ --exclude=vendor,tests,languages > /dev/null
sshpass -p your-password rsync --exclude={.sass-cache*,*.map,node_modules,.php_cs,.git*,*.lock,*.yml,*lock.json} --progress -avz /tmp/your-report -e ssh user@domain.tld:/var/www/your-metrics/$current_branch/ > /dev/null
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment