My team has a Continuous Integration server(currently TeamCity but it doesn't matter) and large Visual Studio project which takes about 1 hour to complete full CI process after check in (build, run unit test, deploy on test server...).
Solution is splitted into 2 parts, Backend which is fully .NET stack projects (Windows Services, Web Projects etc.) and Frontend Single Page Application containing large amount of JavaScript and frontend things.
Continuous Integration build process taking 1 hour is about 90% of backend code, building, unit testing...
This is common scenario for large projects, and I want you to share your best practices and advice, on how to make "smart" check in trigger logic in a way, that each part of solution (Frontend, Backend) doesn't start build process for another.
In your case this
common scenario for large projects
can be handled better on the next step - Continuous delivery. Since all the actions you describe are a natural to it. About the part with
Continuous Integration build process taking 1 hour is about 90% of backend code, building, unit testing.
this article offers very good solution - parallel testing. Of course with the agreement that it depends from your Environments. The basic idea is that processor parallelism-like execution/degree will be very efficient if done properly. After analyzing all your goals and resources. If this automation is done right - the test effort will be significantly decreased.
With the part of
make "smart" check in trigger logic in a way, that each part of solution (Frontend, Backend) doesn't start build process for another
and with the assumption in mind that
Continuous Integration server(but it doesn't matter)
a very good solution (of orchestrating Delivery pipelines with Jenkins) is described in details here. Maybe most valuable for you will be:
and