- CI/CD
The adoption of CI/CD has changed how developers and testers ship software。 With the rise of DevOps has come the new methods of Continuous Integration, Continuous Delivery, (CI/CD) and Continuous Deployment. Conventional(traditional) software development and delivery methods are rapidly becoming obsolete.
CI/CD is a new way for sofrware development to reduce the time of feedback, and help the devs find out the problems as soon as possible. to keep the quality of software
Developers practicing continuous integration merge their changes back to the main branch as often as possible. The developer's changes are validated by creating a build and running automated tests against the build. By doing so, you avoid the integration hell that usually happens when people wait for release day to merge their changes into the release branch.
Continuous integration puts a great emphasis on testing automation to check that the application is not broken whenever new commits are integrated into the main branch.
- DevOps
DevOps is not something but somehow, It is a way of communication, DevOps is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops).
- Jenkins Pipeline
The default interaction model with Jenkins, historically, has been very web UI driven, requiring users to manually create jobs, then manually fill in the details through a web browser. This requires additional effort to create and manage jobs to test and build multiple projects, it also keeps the configuration of a job to build/test/deploy separate from the actual code being built/tested/deployed. This prevents users from applying their existing CI/CD best practices to the job configurations themselves
- Distributed compilation
Use distcc, ccache