@unitedworx For branches, I use the workflow posted on my first post on this thread, which is basically:
master branch = production branch
develop branch = working state branch for development
branch = branch for implementing feature X
And then I merge and tag the branches (take a look at the article, it's a really interesting approach to organizing branches).
As for deploy, the repo in production only pulls the master branch, but I don't like automated deployment because I don't have tests most of the time (shame, I know, currently working on fixing this bug), so I like to stay in control and, at least, push a button. My current deployment flow is like this (manually):
- ssh into server.
- php artisan down
- backup
- git pull
- composer install
- composer dumpautoload (in case there is nothing to install and I need to update something)
- php artisan migrate
- anything I may need to do
- php artisan up
One of the servers had nginx and I had to pull a lot of times a day, so I created a script that would git pull directly from a browser url (instead of forwarding the request to php-fpm, it ran a bash script).
I'm thinking about creating a command that would automate everything, but since I deploy just once a week and for only two projects (so about 2 deploys per week), I didn't get to it yet :P
For an easy to use push to deploy, you could try Forge https://forge.laravel.com/, I never tried it, but I will later this year, it looks awesome :)