When using Continuous Integration (CI), one common problem is that the build simply takes too long.
In this case, the first thing to do, is to ensure that you have a decent build machine. This should not be an old developer box someone left in a dark corner of your office. Instead, use a true high end system that is dedicated for CI and nothing else. This can speed things up considerably.
Very common is also the problem that the tests take too long. Usually this originates from tests that do too much. Mostly these are system tests rather than small unit tests. The best thing here is to divide your tests into two groups. The tests that run fast can be executed in each build. The slow tests can be executed in a second build that runs only once at night.
Also, the CI build only has to do what's necessary to get confidence in the code you just commited to the VCS, that is: compile and test. Packaging and the like might be time-consuming parts of your build, which do not necessarily have to be done in the CI build. Again, the nightly build would do all that stuff and provide you with a complete build every morning.