Agile development principles and DevOps methodologies has transformed the world of IT. We now live in an era where web application features and bug fixes are deployed several times a day, contrasting to the days long past where updates were pushed quarterly, at best.
Three key concepts were borne from Agile: Continuous Integration, Continuous Deployment, and Continuous Delivery. Before I can introduce you two CICD automation, you will need to summary understanding of what each means before you fall down the CICD rabbit hole.
Continuous Integration: new features and bug fixes are added to an app’s code base on a continuous basis. CI enforces, by principle, a behaviour of testing a code’s quality before it can be merged into release. Passing unit tests, code style checks, or linting, or the minimum acceptance criteria for integration.
Continuous Deployment: the ability to build an app and store it’s artifacts (binaries or compressed static files) in a state where it can be delivered to a server. Artifacts are stored in artifact repository servers, such as JFrog’s Artifactory, Nexus, or from the build server itself.
Continuous Delivery: the ability to continuously deploy application builds from an artifact repository to a server.