Continuous Integration / Continuous Delivery ============================================ Continuous Integration (CI) and Continuous Delivery (CD) are practices designed to improve the process of software development. CI involves the automatic integration of code changes into a shared repository, e.g. GitHub, multiple times a day. This helps to detect errors quickly, allowing teams to address issues promptly. CD builds upon CI by automating the release process, ensuring that the integrated code can be deployed to production at any time. The main goal of CD is to make deployment predictable and routine, enabling faster and more reliable releases. Together, CI and CD foster a culture of collaboration and efficiency, reducing the risks associated with software changes and enhancing overall quality. These practices are critical in Laniakea management, promoting continuous improvement and rapid delivery of new applications and their releases. Jenkins is an open-source automation server widely used for CI/CD in software development. It facilitates the automation of various stages of the software development lifecycle, such as building, testing, and deploying code. Jenkins supports a wide range of plugins, making it highly customizable and adaptable to different project requirements. It allows developers to integrate their code into a shared repository frequently, ensuring that any integration issues are identified and resolved quickly. Jenkins can also automate the deployment process, making it easier to deliver updates to production environments reliably. Its user-friendly web interface and extensive community support make it a popular choice among developers. Overall, Jenkins plays a crucial role in enhancing development workflows, improving productivity, and ensuring high-quality software releases. Jenkins installation is not the topic of this section, but we followed the `the GTN tutorial here `_, which covers the main tasks of Jenkins installation and configuration. Laniakea exploits Jenksin for two tasks, i.e. cloud images creation and regular deployment testing, which are tedious operations, but they play a crucial role in the long-term sustainability of the service and must be automated. .. note:: Both tasks require the authentication on OpenStack, therefore `OIDC Agent `_ needs to be properly configured on jenkins nodes. All recipes and JenkinsFiles are hosted on `GitHub `_. Modules ------------- .. toctree:: :maxdepth: 2 cloud_images flavors automated_tests