I am a big fan of automating workflow processes to increase productivity. Making every second count in my profession is important not only for my personal and professional growth but for the organisation I am working for as well.
I use GitLab as my code repository service provider of choice. GitLab has an excellent CI/CD (Continues Integration/Continues Delivery) pipeline that you can utilise to test your code quality and build processes before it goes to production. There are various use cases for it. There is also a robust issue tracker that you can utilise to keep track of work.
GitLab is created by developers for developers.
I work in my local development environment on my MacBook Pro using Apache, PHP and MySQL. Angular and Ionic spins up its own servers for development. The terminal is one of the best tools a developer can have to get things done quicker.
I only work in GitLab branches. 99% of the time, the master branch contains the most stable code that passes code quality and build tests. When work is completed and the branch passes code quality and build testing, it gets merged it into master.
On the staging server, the code gets pull from the master branch. This is where user experience is tested. If any issues arise, a new branch is created, the code gets fixed and is tested before it gets merged into master. Code that does not pass on the staging server never gets pulled into production. It will stay in circulation until it is production ready.
Finally, if all is well and the code works on the staging server, it gets pulled into the production server for our clients to consume.
This is a simple but effective workflow process that I am fond of using.