Our automated builds and tests are taking an increasing amount of resources, especially since we support many platforms and test in both debug and optimized. So, I'm looking for some tool support that would allow a more incremental "pipeline" approach so we could get feedback and results faster. Some ideal characteristics would include:
Support for incremental feedback so we can see the results of the build, unit tests, fast tests, longer running tests, static analysis, etc. as they become available.
Task dependency: if the build fails, then tests shouldn't be run but other tasks could be (like lint or something).
Support for multiple build and test tools (including custom).
Support for multiple platforms (Linux, Mac, possibly Windows).
Some archiving ability would be great, things like log files, build/test output, etc. Natrually, this can get unmanageably large so some data would ideally be purged after X many days or Y many builds.
Any pointers or personal advice is greatly appreciated.