I want to start automating more of my web development process so I'm looking for a build system. I write mostly PHP apps on Mac OS X and deploy Linux servers over FTP. A lot of my clients have basic hosting providers so shell access to their servers is typically not available, however remote MySQL access is usually present. Here is what I want to do with a build system:
- When Building:
- Lint JavaScript Files
- Validate CSS Files
- Validate HTML Files
- Minify and concatenate JS and CSS files
- Verify PHP Syntax
- Set Debug/Production flags
- When Deploying
- Checkout latest version from SVN
- Run build process
- Upload files to server via FTP
- Run SQL scripts on remote DB
I realize this is a lot of work to automate but I think it would be worth it. So what is the best way to start down this path? Is there a system that can handle builds and deploys, or should I search for separate solutions? What systems would you recommend?