Build consistency is crucial
The build is a fundamental part of software development, the process of taking source code and other required resources and running through the various steps to form the final desired output: be it a website ready to deploy or a packaged installer ready to distribute.
At Canary we often inherit third-party projects, where we discover very manual build processes, fraught with issues. Manual processes can lead to any number of problems, for example if any required step is missed, or if the procedure relies on a key programmer who knows the intricacies of the build, or sometimes are simply a waste of resources of manually going through numerous steps each time of adjusting version numbers, compiling, packaging, checking and publishing.
We feel strongly about having the build process automated. This helps:
- Ensure consistency. No steps are missed.
- Improve delivery speed. The build sequence is automated and not waiting on programmer guidance.
- Ensure versions are recorded. Important for subsequent support and maintainability.
- Save time and money, as every improvement in quality, faster build, easier support frees up resources for much more valuable endeavours.
What it means for you
Regardless of whether you are embarking on a software project, or have an established system, we always recommend establishing a clear build process.
It is very important to have consistent, repeatable builds, and although sometimes a clearly-defined script may be sufficient, most projects benefit far more from a fully managed build server. If your Canary contact is recommending adopting a build process, TeamCity is quite possibly one of the options being recommended.
And as with most of our services, we can manage the whole process for you.
How TeamCity fits in
TeamCity is one of the options we leverage for build automation - a commercial build automation server from JetBrains.
It automates the tasks above, related to building, testing, packaging and deploying of Canary projects.
- Consistent build procedure.
- Support for continuous integration (CI), where new changes are automatically built and able to proceed to deployment if they pass defined test requirements.
- Automate server scripts.
- Build and deploy projects. Including pre-processing and post-processing.
- Integrate webhooks.
- Proper (custom) build versioning.
- Custom build logs -- better tracking.
- E-mail notifications for task progress.