I have a question regarding workflow in web development. I'm building my project in Symfony, and it's in Git.
Right now, I have three environments, dev (local), staging and prod. The project itself is hosted on GitHub in a private repo.
I'm wondering what a good way is to update the staging & production environments. Should I somehow setup a push based system so I can push the prod/staging branch directly to my server, and use Git hooks to regenerate cache files and run database migrations?
Right now on similar projects I use a manual pull system, where I SSH to the server, pull down changes from the prod Git branch and manually run cache/migrations. This obviously is not ideal.