As software changes all time, modern software development needs a system, which checks these changes for:
- can be built?
- can be started?
- is working as expected in tests?
A Continuous Integration System (CI) is an essential tool in our workflow.
- Setup a system similar to production
- Builds the whole project by using the code from a Git repository
- Run the whole test suite
- May run additional stuff
But it can do even more.
A Continuous Integration System may help or even handle updates and especially security updates of third-party components.
- Prepare an update in a separate environment
- Collection information according to changes and prepare for developer
- Handling open updates, which were updated again
Hardware, Operating Systems, Frameworks, Programming Languages, and many other things change over time. Checking them manually is a repetitive and error-prone task. These tasks can be checked through a CI System, without directly bothering the core software team. These tasks are:
- Build and run the project on relevant hardware
- Build and run the software on relevant operating systems and versions
- Build and run the software on a different version of the programming language
- Build and run the software on different framework versions, the project relies on
As you can see, these combinations may lead to dozens and in some projects hundreds of different combinations, which must be checked. A CI System can handle these through a corresponding setup.
A Continuous Integration System can run almost any important task you may encounter like:
- Check missing translations
- Security Audits
- Code Quality Audits
- Code Style Audits
A very important part is the automation of repeating tasks, which rise the quality and reliability of the software project.
Continuous Integration can handle a lot of different tasks - even for a one-person software team. In the long run, you will save a lot of resources, time and money.
Removing repetitive, boring, and error prone work from your development team increases happiness and pace of your project.