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?