In a CICD pipeline, everything gets automated for seamless delivery. However, this flow may vary from organization to organization as per the requirement.
A generic DevOps flow would be:
- Developers develop the code send this code to the Git repository and any changes made in the code is committed to this Repository.
- Jenkins pulls this code from the repository using the Git plugin and build it using tools like Ant or Maven.
- Unit testing is performed using JUnit kind of framework. (JUnit plugin available in Jenkins).
- Once, the application is packaged in an executable file, it is pushed to an artifactory like JFrog and then, a Docker image comprising of the application (pulled from artifactory) and all its dependencies is created.
- Configuration management tools like Ansible deploy this image across environments with the environment specific configuration settings.
- Once it reaches testing environment, Selenium is used to run the automated test cases.