I'm pretty sure my process will be different from most here - I'm still a bit old school - so I'll explain.
AJS 1.x - 3 servers - development, production and services. Services is a server that handles everything else - processing stripe payments, storing some user info in a MySQL DB. It's a mix of PHP and NodeJS scripts as well as various cron jobs to take care of some house keeping both against the MySQL DB and Firebase. All 3 servers serve via Apache.
I do everything manually - from downloading AJS directives / services and manually including them, to minifying the CSS / JS myself.
When I think development is done, I run an SSH script that zips the current product site and keeps it for safe keeping (a backup) then sends the dev code to the production server.
I'm also a 1 man team for everything ( dev / sys admin / design / graphics, etc... ) so I test as I write it. For example, yesterday I was making changes to the site's shopping cart - I make a few changes, upload to dev, then go through the entire process, checking the console for errors or warnings, testing the feature every which way I can think of, etc... Rinse / repeat until I'm confident it works right. I probably test each feature a couple dozen times.
Theres code in the scripts the looks at the hostname and determines if it's on the development server or production and determines some logic based on that - ie: if I'm testing the articles system in dev, I don't want users to be notified theres a new article as their just test articles.
I'm currently moving to a more module style of writing code. This site has recently split into 2 that are identical other then minor pieces here and there. I'm writing a new build process (in PHP) where I can develop modules in the primary site; "deploy" the code to the development server of the secondary site - test there, then SSH script both of them to their respective production servers.
I've played with testing tools; gulp, etc... I see the value in them, just not for this website. To often I have to make a quick change to production or theres a major bug but I'm in the middle of a bigger change or etc... doing everything manually allows me to have finer control over what goes into production then to constantly tweak build processes or test processes.
I'm pretty sure my process will be different from most here - I'm still a bit old school - so I'll explain.
AJS 1.x - 3 servers - development, production and services. Services is a server that handles everything else - processing stripe payments, storing some user info in a MySQL DB. It's a mix of PHP and NodeJS scripts as well as various cron jobs to take care of some house keeping both against the MySQL DB and Firebase. All 3 servers serve via Apache.
I do everything manually - from downloading AJS directives / services and manually including them, to minifying the CSS / JS myself.
When I think development is done, I run an SSH script that zips the current product site and keeps it for safe keeping (a backup) then sends the dev code to the production server.
I'm also a 1 man team for everything ( dev / sys admin / design / graphics, etc... ) so I test as I write it. For example, yesterday I was making changes to the site's shopping cart - I make a few changes, upload to dev, then go through the entire process, checking the console for errors or warnings, testing the feature every which way I can think of, etc... Rinse / repeat until I'm confident it works right. I probably test each feature a couple dozen times.
Theres code in the scripts the looks at the hostname and determines if it's on the development server or production and determines some logic based on that - ie: if I'm testing the articles system in dev, I don't want users to be notified theres a new article as their just test articles.
I'm currently moving to a more module style of writing code. This site has recently split into 2 that are identical other then minor pieces here and there. I'm writing a new build process (in PHP) where I can develop modules in the primary site; "deploy" the code to the development server of the secondary site - test there, then SSH script both of them to their respective production servers.
I've played with testing tools; gulp, etc... I see the value in them, just not for this website. To often I have to make a quick change to production or theres a major bug but I'm in the middle of a bigger change or etc... doing everything manually allows me to have finer control over what goes into production then to constantly tweak build processes or test processes.