Definition
Continuous Integration (CI) and Continuous Delivery (CD) is a software development approach that highlights the frequent and automated integration of code changes into a shared repository, followed by an automated and streamlined process for testing, building, and deploying applications. When following this approach, developers regularly commit changes to the version control system, triggering an automated build process that compiles the code and runs a suite of tests to detect any integration or functionality issues. Upon successful completion of these tests, the code is automatically deployed to staging environments, allowing for further validation. Continuous Delivery extends this process to automatically release the tested code into production environments, providing a mechanism for rapidly and reliably delivering software updates. CI/CD practices enhance collaboration among development, testing, and operations teams, fostering a culture of continuous improvement and enabling the efficient delivery of high-quality software.
Relevance
The CI/CD development approach is used for the automatic delivery of the software components that are within the scope of EDDIE.
Motivation
CI/CD is chosen for its ability to automate testing and deployment, ensuring that the software components are based on the latest successfully implemented code, promoting reliable and up-to-date application delivery.
An alternative to CI/CD is:
- Manual Deployment: In some cases, particularly in smaller projects or environments with less frequent updates, manual testing and deployment processes can be sufficient.